Devices and methods for processing and disambiguating touch inputs using intensity thresholds based on prior input intensity

ABSTRACT

An electronic device detects a change in intensity of an input on an input element that includes detecting an increase in intensity followed by a decrease in intensity, and determines whether the first decrease in intensity of the input meets up-click detection criteria, which require that the intensity of the input decrease below a first up-click intensity threshold in order for the up-click detection criteria to be met. The first up-click intensity threshold is time varying, in accordance with the detected intensity of the input during the first decrease in intensity of the input. If the first decrease in intensity of the input meets the up-click detection criteria, first feedback is provided, indicating that the first decrease in intensity of the input was recognized as an up-click, and if the first decrease in intensity of the input does not meet the up-click detection criteria, the first feedback is not provided.

RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.15/270,789, filed Sep. 20, 2016, which claims priority to U.S.Provisional Application Ser. No. 62/384,053, filed Sep. 6, 2016, both ofwhich are incorporated by reference herein in their entireties.

TECHNICAL FIELD

This relates generally to electronic devices with one or more intensitysensitive input elements, including but not limited to electronicdevices with touch-sensitive displays and optionally other inputelements to detect intensity of contacts on touch-sensitive surfaces.

BACKGROUND

The use of intensity sensitive input elements, including but not limitedto touch-sensitive surfaces, as input devices for computers and otherelectronic computing devices has increased significantly in recentyears. Exemplary intensity sensitive input elements include buttons thatinclude a contact intensity sensor, and touchpads and touch-screendisplays that include contact intensity sensors. Touch inputs on suchsurfaces are used to manipulate user interfaces and user interfaceobjects on a display.

Exemplary user interface objects include digital images, video, text,icons, control elements such as buttons and other graphics. Exemplarymanipulations include adjusting the position and/or size of one or moreuser interface objects or activating buttons or openingfiles/applications represented by user interface objects, scrolling orchanging user interfaces within an application or otherwise manipulatinguser interfaces. Certain manipulations of user interface objects or userinterfaces are associated with certain types of touch inputs, which arereferred to as gestures.

Conventional methods and interfaces for processing touch inputs areinefficient in disambiguating certain touch inputs to determine intendedgestures and intended manipulations of user interface objects. Thus, itwould be desirable to have a framework for improved processing anddisambiguation of touch inputs.

SUMMARY

Accordingly, there is a need for electronic devices with faster, moreefficient methods and interfaces for processing and disambiguating touchinputs. Such methods and interfaces optionally complement or replaceconventional methods for processing and disambiguating touch inputs.Such methods and interfaces reduce the number, extent, and/or nature ofthe inputs from a user and produce a more efficient human-machineinterface. For battery-operated devices, such methods and interfacesconserve power and increase the time between battery charges.

The above deficiencies and other problems associated with userinterfaces for electronic devices with touch-sensitive surfaces arereduced or eliminated by the disclosed devices. In some embodiments, thedevice is a desktop computer. In some embodiments, the device isportable (e.g., a notebook computer, tablet computer, or handhelddevice). In some embodiments, the device is a personal electronic device(e.g., a wearable electronic device, such as a watch). In someembodiments, the device has a touchpad. In some embodiments, the devicehas a touch-sensitive display (also known as a “touch screen” or“touch-screen display”). In some embodiments, the device has a graphicaluser interface (GUI), one or more processors, memory and one or moremodules, programs or sets of instructions stored in the memory forperforming multiple functions. In some embodiments, the user interactswith the GUI primarily through stylus and/or finger contacts andgestures on the touch-sensitive surface. In some embodiments, thefunctions optionally include image editing, drawing, presenting, wordprocessing, spreadsheet making, game playing, telephoning, videoconferencing, e-mailing, instant messaging, workout support, digitalphotographing, digital videoing, web browsing, digital music playing,note taking, and/or digital video playing. Executable instructions forperforming these functions are, optionally, included in a non-transitorycomputer readable storage medium or other computer program productconfigured for execution by one or more processors.

In accordance with some embodiments, a method, which is performed at anelectronic device with a display and an intensity sensitive inputelement (e.g., a hardware button, a touch-sensitive surface, or a regionof a device that is associated with one or more intensity sensors) fordetecting intensity of user inputs with the input element, includesdetecting a first increase in intensity of an input on the input elementthat meets a down-click detection criteria, and after detecting thefirst increase in intensity of the input on the input element, detectinga first decrease in intensity of the contact. The method furtherincludes determining whether the first decrease in intensity of theinput meets up-click detection criteria, wherein: for the first decreasein intensity, the up-click detection criteria require that the intensityof the input decrease below a first up-click intensity threshold inorder for the up-click detection criteria to be met, and the firstup-click intensity threshold is selected based on the intensity of theinput during the increase in intensity of the contact that was detectedprior to detecting the first decrease in intensity of the input. Themethod also includes, in accordance with a determination that the firstdecrease in intensity of the input meets up-click detection criteria,providing first feedback indicating that the first decrease in intensityof the input was recognized as an up-click input, and in accordance witha determination that the decrease in intensity of the input does notmeet the up-click detection criteria, forgoing providing the firstfeedback.

In accordance with some embodiments, a method, which is performed at anelectronic device with a display and an intensity sensitive inputelement (e.g., a hardware button, a touch-sensitive surface, or a regionof a device that is associated with one or more intensity sensors) fordetecting intensity of user inputs with the input element, includesdetecting a change in intensity of an input on the input element thatincludes an increase in intensity of the input on the input elementfollowed by a decrease in intensity of the input on the input element;recognizing at least a portion of the change in intensity of the inputas a first input event that is associated with a first operation; andafter recognizing the first input event, delaying performance of thefirst operation while monitoring subsequent changes in intensity of theinput for a second input event, wherein the delay is limited by adefault delay time period. The method further includes, after delayingperformance of the first operation: in accordance with a determinationthat the second input event has been recognized before the default delaytime period has elapsed, performing a second operation and forgoingperformance of the first operation; in accordance with a determinationthat early-confirmation criteria for the first input event have been metbefore the default delay time period has elapsed without the secondinput event being recognized, performing the first operation before thedefault delay time period has elapsed; and in accordance with adetermination that the default delay time period has elapsed without theearly-confirmation criteria for the first input event being met andwithout the second input event being recognized, performing the firstoperation once the default delay time period has elapsed.

In accordance with some embodiments, a method, which is performed at anelectronic device with a display and an intensity sensitive inputelement (e.g., a hardware button, a touch-sensitive surface, or a regionof a device that is associated with one or more intensity sensors) fordetecting intensity of user inputs with the input element, includesdetecting an input sequence that includes an increase in intensity of aninput that corresponds to a first input event. The method furtherincludes, in response to detecting the input sequence: in accordancewith a determination that a second input event, including a decrease inintensity of the input after the first input event, is detected within afirst time period after the first input event is detected, performing afirst operation. The method further includes, in accordance with adetermination that the second input event is not detected within asecond time period that is longer than the first time period and thatthe input had a characteristic intensity above a respective intensitythreshold between when the first input event was detected and when thesecond time period elapsed, performing a second operation once thesecond time period has elapsed, wherein the second time period isdetermined based at least in part on an intensity of the input after thefirst input event is detected. The method further includes, inaccordance with a determination that the second input event is notdetected within a third time period that is longer than the second timeperiod and that the input did not have a characteristic intensity abovethe respective intensity threshold between when the first input eventwas detected and when the second time period elapsed, performing thesecond operation once the third time period has elapsed.

In accordance with some embodiments, an electronic device includes adisplay, a touch-sensitive surface, optionally one or more sensors todetect intensity of contacts with the touch-sensitive surface, one ormore processors, memory, and one or more programs; the one or moreprograms are stored in the memory and configured to be executed by theone or more processors and the one or more programs include instructionsfor performing or causing performance of the operations of any of themethods described herein. In accordance with some embodiments, acomputer readable storage medium has stored therein instructions whichwhen executed by an electronic device with a display, a touch-sensitivesurface, and optionally one or more sensors to detect intensity ofcontacts with the touch-sensitive surface, cause the device to performor cause performance of the operations of any of the methods describedherein. In accordance with some embodiments, a graphical user interfaceon an electronic device with a display, a touch-sensitive surface,optionally one or more sensors to detect intensity of contacts with thetouch-sensitive surface, a memory, and one or more processors to executeone or more programs stored in the memory includes one or more of theelements displayed in any of the methods described herein, which areupdated in response to inputs, as described in any of the methodsdescribed herein. In accordance with some embodiments, an electronicdevice includes: a display, a touch-sensitive surface, and optionallyone or more sensors to detect intensity of contacts with thetouch-sensitive surface; and means for performing or causing performanceof the operations of any of the methods described herein. In accordancewith some embodiments, an information processing apparatus, for use inan electronic device with a display and a touch-sensitive surface, andoptionally one or more sensors to detect intensity of contacts with thetouch-sensitive surface, includes means for performing or causingperformance of the operations of any of the methods described herein.

Thus, electronic devices with displays, one or more touch-sensitivesurfaces and one or more sensors to detect intensity of contacts withthe touch-sensitive surface are provided with faster, more efficientmethods and interfaces for processing and disambiguating touch inputs,thereby increasing the effectiveness, efficiency, and user satisfactionwith such devices. Such methods and interfaces may complement or replaceconventional methods for processing and disambiguating touch inputs.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the various described embodiments,reference should be made to the Description of Embodiments below, inconjunction with the following drawings in which like reference numeralsrefer to corresponding parts throughout the figures.

FIG. 1A is a block diagram illustrating a portable multifunction devicewith a touch-sensitive display in accordance with some embodiments.

FIG. 1B is a block diagram illustrating example components for eventhandling in accordance with some embodiments.

FIG. 1C is a block diagram illustrating a tactile output module inaccordance with some embodiments.

FIG. 2A illustrates a portable multifunction device having a touchscreen in accordance with some embodiments.

FIGS. 2B-2C show exploded views of an intensity-sensitive input devicein accordance with some embodiments.

FIG. 3 is a block diagram of an example multifunction device with adisplay and a touch-sensitive surface in accordance with someembodiments.

FIG. 4A illustrates an example user interface for a menu of applicationson a portable multifunction device in accordance with some embodiments.

FIG. 4B illustrates an example user interface for a multifunction devicewith a touch-sensitive surface that is separate from the display inaccordance with some embodiments.

FIGS. 4C-4E illustrate examples of dynamic intensity thresholds inaccordance with some embodiments.

FIGS. 4F-4G illustrate a set of sample tactile output patterns inaccordance with some embodiments.

FIGS. 5A-5II illustrate example user interfaces and a variety of timeoutperiods and intensity thresholds used for detecting gestures inaccordance with some embodiments.

FIGS. 6A-6F are flow diagrams illustrating a method of processing anddisambiguating touch inputs in accordance with some embodiments.

FIGS. 7A-7E are flow diagrams illustrating a method of processing anddisambiguating touch inputs in accordance with some embodiments.

FIGS. 8A-8C are flow diagrams illustrating a method of processing anddisambiguating touch inputs in accordance with some embodiments.

FIGS. 9-11 are functional block diagrams of an electronic device inaccordance with some embodiments.

DESCRIPTION OF EMBODIMENTS

In electronic devices that display graphical user interfaces and have anintensity sensitive input element, it is challenging to both accuratelyand quickly detect and distinguish between multiple distinct gestures,such as a deep press gesture, a long press gesture, a single clickgesture, a double click gesture, and possible a triple click gesture.Such gestures involve an input having time varying intensity.Distinguishing between such gestures requires analysis of both theintensity of an input on the input element, as well as analysis oftiming aspects or features of the input. Furthermore, some users have a“heavier touch” than others, putting more pressure, on average, thanother users. Similarly, some users enter gestures at higher speed thanother users. Despite these different patters or styles of user inputs,the electronic device needs to accurately discern user intent, and mustdo so with low latency, so that the operations the user is requesting orcommanding occur quickly in response to the user's touch inputs. In someembodiments, to achieve such accuracy and touch input processingperformance, one or more intensity thresholds, used for detecting agesture or portions of a gesture, vary in accordance with the intensityof the user's input during one or more preceding portions of thegesture. Furthermore, in some embodiments, to achieve such accuracy andtouch input processing performance, one or more time periods used in theanalysis of a touch input varies in accordance with the intensity of thetouch input, thereby enabling faster recognition of certain gestureswhen predefined criteria are satisfied.

In another aspect, haptic feedback, also called tactile outputs, can beused to facilitate user input, confirm the recognition of various userinputs, and alert the user to the occurrence of various events, variousinput conditions, and the like. As the number and complexity of hapticfeedback events in a device increases, it becomes important to ensurethat specific tactile outputs be consistently generated, even when thedetection criteria for triggering those tactile outputs vary (e.g., thedetection criteria for triggering a long press tactile output may differfrom one application to another, or from one context in an applicationto another context in the same application).

Below, FIGS. 1A-1B, 2, and 3 provide a description of example devices.FIGS. 4A-4B, and 5A-5II illustrate example user interfaces of anelectronic device configured to monitor an input on an intensitysensitive input element and detect various events, such as up-clicks,down-clicks, single clicks, double clicks, deep press inputs, and longpress inputs, using a variety of input intensity criteria and timingcriteria for fast and efficient determination of user inputs. FIGS.6A-6F illustrate a flow diagram of a method of monitoring an input on anintensity sensitive input element, and detecting an up-click and/or adown-click in the monitored input using one or more intensity thresholdsthat are based on prior input intensity of the input. FIGS. 7A-7Eillustrate a flow diagram of a method of monitoring changes in intensityof an input and applying early-confirmation criteria for recognizingsingle click inputs, as distinguished from double click inputs, on anexpedited basis. FIGS. 8A-8C illustrate a flow diagram of a method ofmonitoring changes in intensity of an input and applyingintensity-sensitive criteria for recognizing long press inputs on anexpedited basis. The user interfaces in FIGS. 5A-5N are used toillustrate the processes in FIGS. 6A-6F. The user interfaces in FIGS.5O-5Y are used to illustrate the processes in FIGS. 7A-7E. The userinterfaces in FIGS. 5Z-5II are used to illustrate the processes in FIGS.8A-8C.

Example Devices

Reference will now be made in detail to embodiments, examples of whichare illustrated in the accompanying drawings. In the following detaileddescription, numerous specific details are set forth in order to providea thorough understanding of the various described embodiments. However,it will be apparent to one of ordinary skill in the art that the variousdescribed embodiments may be practiced without these specific details.In other instances, well-known methods, procedures, components,circuits, and networks have not been described in detail so as not tounnecessarily obscure aspects of the embodiments.

It will also be understood that, although the terms first, second, etc.are, in some instances, used herein to describe various elements, theseelements should not be limited by these terms. These terms are only usedto distinguish one element from another. For example, a first contactcould be termed a second contact, and, similarly, a second contact couldbe termed a first contact, without departing from the scope of thevarious described embodiments. The first contact and the second contactare both contacts, but they are not the same contact, unless the contextclearly indicates otherwise.

The terminology used in the description of the various describedembodiments herein is for the purpose of describing particularembodiments only and is not intended to be limiting. As used in thedescription of the various described embodiments and the appendedclaims, the singular forms “a,” “an,” and “the” are intended to includethe plural forms as well, unless the context clearly indicatesotherwise. It will also be understood that the term “and/or” as usedherein refers to and encompasses any and all possible combinations ofone or more of the associated listed items. It will be furtherunderstood that the terms “includes,” “including,” “comprises,” and/or“comprising,” when used in this specification, specify the presence ofstated features, integers, steps, operations, elements, and/orcomponents, but do not preclude the presence or addition of one or moreother features, integers, steps, operations, elements, components,and/or groups thereof.

As used herein, the term “if” is, optionally, construed to mean “when”or “upon” or “in response to determining” or “in response to detecting,”depending on the context. Similarly, the phrase “if it is determined” or“if [a stated condition or event] is detected” is, optionally, construedto mean “upon determining” or “in response to determining” or “upondetecting [the stated condition or event]” or “in response to detecting[the stated condition or event],” depending on the context.

Embodiments of electronic devices, user interfaces for such devices, andassociated processes for using such devices are described. In someembodiments, the device is a portable communications device, such as amobile telephone, that also contains other functions, such as PDA and/ormusic player functions. Example embodiments of portable multifunctiondevices include, without limitation, the iPhone®, iPod Touch®, and iPad®devices from Apple Inc. of Cupertino, Calif. Other portable electronicdevices, such as laptops or tablet computers with touch-sensitivesurfaces (e.g., touch-screen displays and/or touchpads), are,optionally, used. It should also be understood that, in someembodiments, the device is not a portable communications device, but isa desktop computer with a touch-sensitive surface (e.g., a touch-screendisplay and/or a touchpad).

In the discussion that follows, an electronic device that includes adisplay and a touch-sensitive surface is described. It should beunderstood, however, that the electronic device optionally includes oneor more other physical user-interface devices, such as a physicalkeyboard, a mouse and/or a joystick.

The device typically supports a variety of applications, such as one ormore of the following: a note taking application, a drawing application,a presentation application, a word processing application, a websitecreation application, a disk authoring application, a spreadsheetapplication, a gaming application, a telephone application, a videoconferencing application, an e-mail application, an instant messagingapplication, a workout support application, a photo managementapplication, a digital camera application, a digital video cameraapplication, a web browsing application, a digital music playerapplication, and/or a digital video player application.

The various applications that are executed on the device optionally useat least one common physical user-interface device, such as thetouch-sensitive surface. One or more functions of the touch-sensitivesurface as well as corresponding information displayed on the deviceare, optionally, adjusted and/or varied from one application to the nextand/or within a respective application. In this way, a common physicalarchitecture (such as the touch-sensitive surface) of the deviceoptionally supports the variety of applications with user interfacesthat are intuitive and transparent to the user.

Attention is now directed toward embodiments of portable devices withtouch-sensitive displays. FIG. 1A is a block diagram illustratingportable multifunction device 100 with touch-sensitive display system112 in accordance with some embodiments. Touch-sensitive display system112 is sometimes called a “touch screen” for convenience, and issometimes simply called a touch-sensitive display. Device 100 includesmemory 102 (which optionally includes one or more computer readablestorage mediums), memory controller 122, one or more processing units(CPUs) 120, peripherals interface 118, RF circuitry 108, audio circuitry110, speaker 111, microphone 113, input/output (I/O) subsystem 106,other input or control devices 116, and external port 124. Device 100optionally includes one or more optical sensors 164. Device 100optionally includes one or more intensity sensors 165 for detectingintensity of contacts on device 100 (e.g., a touch-sensitive surfacesuch as touch-sensitive display system 112 of device 100). Device 100optionally includes one or more tactile output generators 167 forgenerating tactile outputs on device 100 (e.g., generating tactileoutputs on a touch-sensitive surface such as touch-sensitive displaysystem 112 of device 100 or touchpad 355 of device 300). Thesecomponents optionally communicate over one or more communication busesor signal lines 103.

As used in the specification and claims, the term “tactile output”refers to physical displacement of a device relative to a previousposition of the device, physical displacement of a component (e.g., atouch-sensitive surface) of a device relative to another component(e.g., housing) of the device, or displacement of the component relativeto a center of mass of the device that will be detected by a user withthe user's sense of touch. For example, in situations where the deviceor the component of the device is in contact with a surface of a userthat is sensitive to touch (e.g., a finger, palm, or other part of auser's hand), the tactile output generated by the physical displacementwill be interpreted by the user as a tactile sensation corresponding toa perceived change in physical characteristics of the device or thecomponent of the device. For example, movement of a touch-sensitivesurface (e.g., a touch-sensitive display or trackpad) is, optionally,interpreted by the user as a “down click” or “up click” of a physicalactuator button. In some cases, a user will feel a tactile sensationsuch as an “down click” or “up click” even when there is no movement ofa physical actuator button associated with the touch-sensitive surfacethat is physically pressed (e.g., displaced) by the user's movements. Asanother example, movement of the touch-sensitive surface is, optionally,interpreted or sensed by the user as “roughness” of the touch-sensitivesurface, even when there is no change in smoothness of thetouch-sensitive surface. While such interpretations of touch by a userwill be subject to the individualized sensory perceptions of the user,there are many sensory perceptions of touch that are common to a largemajority of users. Thus, when a tactile output is described ascorresponding to a particular sensory perception of a user (e.g., an “upclick,” a “down click,” “roughness”), unless otherwise stated, thegenerated tactile output corresponds to physical displacement of thedevice or a component thereof that will generate the described sensoryperception for a typical (or average) user. Using tactile outputs toprovide haptic feedback to a user enhances the operability of the deviceand makes the user-device interface more efficient (e.g., by helping theuser to provide proper inputs and reducing user mistakes whenoperating/interacting with the device) which, additionally, reducespower usage and improves battery life of the device by enabling the userto use the device more quickly and efficiently.

In some embodiments, a tactile output pattern specifies characteristicsof a tactile output, such as the amplitude of the tactile output, theshape of a movement waveform of the tactile output, the frequency of thetactile output, and/or the duration of the tactile output.

When tactile outputs with different tactile output patterns aregenerated by a device (e.g., via one or more tactile output generatorsthat move a moveable mass to generate tactile outputs), the tactileoutputs may invoke different haptic sensations in a user holding ortouching the device. While the sensation of the user is based on theuser's perception of the tactile output, most users will be able toidentify changes in waveform, frequency, and amplitude of tactileoutputs generated by the device. Thus, the waveform, frequency andamplitude can be adjusted to indicate to the user that differentoperations have been performed. As such, tactile outputs with tactileoutput patterns that are designed, selected, and/or engineered tosimulate characteristics (e.g., size, material, weight, stiffness,smoothness, etc.); behaviors (e.g., oscillation, displacement,acceleration, rotation, expansion, etc.); and/or interactions (e.g.,collision, adhesion, repulsion, attraction, friction, etc.) of objectsin a given environment (e.g., a user interface that includes graphicalfeatures and objects, a simulated physical environment with virtualboundaries and virtual objects, a real physical environment withphysical boundaries and physical objects, and/or a combination of any ofthe above) will, in some circumstances, provide helpful feedback tousers that reduces input errors and increases the efficiency of theuser's operation of the device. Additionally, tactile outputs are,optionally, generated to correspond to feedback that is unrelated to asimulated physical characteristic, such as an input threshold or aselection of an object. Such tactile outputs will, in somecircumstances, provide helpful feedback to users that reduces inputerrors and increases the efficiency of the user's operation of thedevice.

In some embodiments, a tactile output with a suitable tactile outputpattern serves as a cue for the occurrence of an event of interest in auser interface or behind the scenes in a device. Examples of the eventsof interest include activation of an affordance (e.g., a real or virtualbutton, or toggle switch) provided on the device or in a user interface,success or failure of a requested operation, reaching or crossing aboundary in a user interface, entry into a new state, switching of inputfocus between objects, activation of a new mode, reaching or crossing aninput threshold, detection or recognition of a type of input or gesture,etc. In some embodiments, tactile outputs are provided to serve as awarning or an alert for an impending event or outcome that would occurunless a redirection or interruption input is timely detected. Tactileoutputs are also used in other contexts to enrich the user experience,improve the accessibility of the device to users with visual or motordifficulties or other accessibility needs, and/or improve efficiency andfunctionality of the user interface and/or the device. Tactile outputsare optionally accompanied with audio outputs and/or visible userinterface changes, which further enhance a user's experience when theuser interacts with a user interface and/or the device, and facilitatebetter conveyance of information regarding the state of the userinterface and/or the device, and which reduce input errors and increasethe efficiency of the user's operation of the device.

FIG. 4F provides a set of sample tactile output patterns that may beused, either individually or in combination, either as is or through oneor more transformations (e.g., modulation, amplification, truncation,etc.), to create suitable haptic feedback in various scenarios and forvarious purposes, such as those mentioned above and those described withrespect to the user interfaces and methods discussed herein. Thisexample of a palette of tactile outputs shows how a set of threewaveforms and eight frequencies can be used to produce an array oftactile output patterns. In addition to the tactile output patternsshown in this figure, each of these tactile output patterns isoptionally adjusted in amplitude by changing a gain value for thetactile output pattern, as shown, for example for FullTap 80 Hz, FullTap200 Hz, MiniTap 80 Hz, MiniTap 200 Hz, MicroTap 80 Hz, and MicroTap 200Hz in FIG. 4G, which are each shown with variants having a gain of 1.0,0.75, 0.5, and 0.25. As shown in FIG. 4G, changing the gain of a tactileoutput pattern changes the amplitude of the pattern without changing thefrequency of the pattern or changing the shape of the waveform. In someembodiments, changing the frequency of a tactile output pattern alsoresults in a lower amplitude as some tactile output generators arelimited by how much force can be applied to the moveable mass and thushigher frequency movements of the mass are constrained to loweramplitudes to ensure that the acceleration needed to create the waveformdoes not require force outside of an operational force range of thetactile output generator (e.g., the peak amplitudes of the FullTap at230 Hz, 270 Hz, and 300 Hz are lower than the amplitudes of the FullTapat 80 Hz, 100 Hz, 125 Hz, and 200 Hz).

In FIG. 4F, each column shows tactile output patterns that have aparticular waveform. The waveform of a tactile output pattern representsthe pattern of physical displacements relative to a neutral position(e.g., x_(zero)) versus time that an moveable mass goes through togenerate a tactile output with that tactile output pattern. For example,a first set of tactile output patterns shown in the left column in FIG.4F (e.g., tactile output patterns of a “FullTap”) each have a waveformthat includes an oscillation with two complete cycles (e.g., anoscillation that starts and ends in a neutral position and crosses theneutral position three times). A second set of tactile output patternsshown in the middle column in FIG. 4F (e.g., tactile output patterns ofa “MiniTap”) each have a waveform that includes an oscillation thatincludes one complete cycle (e.g., an oscillation that starts and endsin a neutral position and crosses the neutral position one time). Athird set of tactile output patterns shown in the right column in FIG.4F (e.g., tactile output patterns of a “MicroTap”) each have a waveformthat includes an oscillation that include one half of a complete cycle(e.g., an oscillation that starts and ends in a neutral position anddoes not cross the neutral position). The waveform of a tactile outputpattern also includes a start buffer and an end buffer that representthe gradual speeding up and slowing down of the moveable mass at thestart and at the end of the tactile output. The example waveforms shownin FIG. 4F-4G include x_(min) and x_(max) values which represent themaximum and minimum extent of movement of the moveable mass. For largerelectronic devices with larger moveable masses, there may be larger orsmaller minimum and maximum extents of movement of the mass. The exampleshown in FIGS. 4F-4G describes movement of a mass in 1 dimension,however similar principles would also apply to movement of a moveablemass in two or three dimensions.

As shown in FIG. 4F, each tactile output pattern also has acorresponding characteristic frequency that affects the “pitch” of ahaptic sensation that is felt by a user from a tactile output with thatcharacteristic frequency. For a continuous tactile output, thecharacteristic frequency represents the number of cycles that arecompleted within a given period of time (e.g., cycles per second) by themoveable mass of the tactile output generator. For a discrete tactileoutput, a discrete output signal (e.g., with 0.5, 1, or 2 cycles) isgenerated, and the characteristic frequency value specifies how fast themoveable mass needs to move to generate a tactile output with thatcharacteristic frequency. As shown in FIG. 4F, for each type of tactileoutput (e.g., as defined by a respective waveform, such as FullTap,MiniTap, or MicroTap), a higher frequency value corresponds to fastermovement(s) by the moveable mass, and hence, in general, a shorter timeto complete the tactile output (e.g., including the time to complete therequired number of cycle(s) for the discrete tactile output, plus astart and an end buffer time). For example, a FullTap with acharacteristic frequency of 80 Hz takes longer to complete than FullTapwith a characteristic frequency of 100 Hz (e.g., 35.4 ms vs. 28.3 ms inFIG. 4F). In addition, for a given frequency, a tactile output with morecycles in its waveform at a respective frequency takes longer tocomplete than a tactile output with fewer cycles its waveform at thesame respective frequency. For example, a FullTap at 150 Hz takes longerto complete than a MiniTap at 150 Hz (e.g., 19.4 ms vs. 12.8 ms), and aMiniTap at 150 Hz takes longer to complete than a MicroTap at 150 Hz(e.g., 12.8 ms vs. 9.4 ms). However, for tactile output patterns withdifferent frequencies this rule may not apply (e.g., tactile outputswith more cycles but a higher frequency may take a shorter amount oftime to complete than tactile outputs with fewer cycles but a lowerfrequency, and vice versa). For example, at 300 Hz, a FullTap takes aslong as a MiniTap (e.g., 9.9 ms).

As shown in FIG. 4F, a tactile output pattern also has a characteristicamplitude that affects the amount of energy that is contained in atactile signal, or a “strength” of a haptic sensation that may be feltby a user through a tactile output with that characteristic amplitude.In some embodiments, the characteristic amplitude of a tactile outputpattern refers to an absolute or normalized value that represents themaximum displacement of the moveable mass from a neutral position whengenerating the tactile output. In some embodiments, the characteristicamplitude of a tactile output pattern is adjustable, e.g., by a fixed ordynamically determined gain factor (e.g., a value between 0 and 1), inaccordance with various conditions (e.g., customized based on userinterface contexts and behaviors) and/or preconfigured metrics (e.g.,input-based metrics, and/or user-interface-based metrics). In someembodiments, an input-based metric (e.g., an intensity-change metric oran input-speed metric) measures a characteristic of an input (e.g., arate of change of a characteristic intensity of a contact in a pressinput or a rate of movement of the contact across a touch-sensitivesurface) during the input that triggers generation of a tactile output.In some embodiments, a user-interface-based metric (e.g., aspeed-across-boundary metric) measures a characteristic of a userinterface element (e.g., a speed of movement of the element across ahidden or visible boundary in a user interface) during the userinterface change that triggers generation of the tactile output. In someembodiments, the characteristic amplitude of a tactile output patternmay be modulated by an “envelope” and the peaks of adjacent cycles mayhave different amplitudes, where one of the waveforms shown above isfurther modified by multiplication by an envelope parameter that changesover time (e.g., from 0 to 1) to gradually adjust amplitude of portionsof the tactile output over time as the tactile output is beinggenerated.

Although specific frequencies, amplitudes, and waveforms are representedin the sample tactile output patterns in FIG. 4F for illustrativepurposes, tactile output patterns with other frequencies, amplitudes,and waveforms may be used for similar purposes. For example, waveformsthat have between 0.5 to 4 cycles can be used. Other frequencies in therange of 60 Hz-400 Hz may be used as well. Table 1 provides examples ofparticular haptic feedback behaviors, configurations, and examples oftheir use.

TABLE 1 Behavior Config- Feedback uration Configuration Examples UserInterface Haptics Retarget MicroTap Drag calendar event across dayboundary Default High (270 Hz) Retarget in orb quick action menu Gain:0.4 Sliding over origin point in a scrubber Minimum Reaching 0 degreeswhen cropping/ Interval: 0.05 straightening Rearranging a list whenitems snap together Retarget MicroTap Retarget in A-Z scrubber StrongHigh (270 Hz) Gain: 0.5 Minimum Interval: 0.05 Retarget MicroTapSpinning a wheel in the wheels of time Picker High (270 Hz) userinterface Gain: 0.4 Minimum Interval: 0.05 Impact MicroTap Changingscrubbing speed when Default Medium adjusting a slider (150 Hz) Creatinga new calendar event by Gain max: 0.8 tapping and holding Gain min: 0.0Activating a toggle switch (changing the switch from on to off or off toon) Reaching a predefined orientation on a compass (e.g., every 45degrees from North) Reaching a level state (e.g., 0 degrees tilt in anyaxis for 0.5 seconds) Dropping a pin in a map Sending or receiving amessage with an emphasis animation (e.g., “slam” effect) Sending orreceiving an acknowledgment of a message Snapping a ruler to differentorientations (e.g., every 45 degrees) Crossing over a suggested photowhile scrubbing through a burst of photos Crossing over a detent in ascrubber (e.g., text size, haptic strength, display brightness, displaycolor temperature) Transaction failure notification (ApplePay Failure)Impact MicroTap Picking up an existing item (e.g., a Light Mediumcalendar event, a favorite in web (150 Hz) browser) Gain max: 0.6 Movinga time selector over a minor Gain min: 0.0 division of time (e.g., 15min) in sleep alarm Impact MicroTap Moving a time selector over a majorStrong Medium division of time (e.g., 1 hour) in sleep (150 Hz) alarmGain max: 1.0 Gain min: 0.0 Edge MicroTap Dragging a brightness scrubberto an Scrubber Medium edge of the scrubber (150 Hz) Dragging a volumescrubber to an Gain max: 0.6 edge of the scrubber Gain min: 0.3 EdgeMicroTap Reaching maximum zoom level when Zoom High (270 Hz) zoominginto a photo Gain: 0.6 Re-centering a map Drag MicroTap Pickup and dropan event in calendar Default High (270 Hz) Gain Pickup: 1.0 Gain Drop:0.6 Drag MicroTap Rearrange lists in weather, contacts, Snapping High(270 Hz) music, etc. Gain Pickup: 1.0 Gain Drop: 0.6 Gain Snap: 1.0States Swipe in: Swipe to delete a mail message or Swipe MiniTap Highconversation Action (270 Hz) Swipe to mark a mail message as Gain: 1.0read/unread in mail Swipe out: Swipe to delete a table row (e.g., aMicroTap document in a document creation/ High (270 Hz) viewingapplication, a note in a notes Gain: 0.55 application, a location in aweather application, a podcast in a podcast application, a song in aplaylist in a music application, a voice memo in a voice recordingapplication Swipe to delete a message while displaying apressure-triggered preview Swipe to mark a message as read/ unread whiledisplaying a pressure- triggered preview Swipe to delete a news articleSwipe to favorite/love a news article Button MicroTap Reply tomessage/conversation Default High (270 Hz) Adding a bookmark in anelectronic Gain: 0.9 book reader application Activating a virtualassistant Starting to record a voice memo Stopping recording a voicememo Button MiniTap Low Delete message/conversation Destructive (100 Hz)Feedback Intensity: 0.8 Event FullTap Confirmation that a payment hasSuccess Medium been made (200 Hz) Alert that authentication is neededGain: 0.7 to make a payment (e.g., biometric MiniTap High authenticationor passcode (270 Hz) authentication) Gain: 1.0 Adding a payment accountto an electronic wallet application Event MiniTap High Failure toprocess a payment transaction Error (270 Hz) Failure to authenticate afingerprint Gain: 0.85 detected on a fingerprint sensor Gain: 0.75Incorrect passcode/password entered FullTap in a passcode/password entryUI Medium (200 Hz) Gain: 0.65 FullTap Low (150 Hz) Gain: 0.75 EventFullTap High Shake to undo Warning (300 Hz) Gain: 0.9 FullTap Custom(270 Hz) Gain: 0.9 Force Press States MicroTap Orb-Peek/Preview (e.g.,peek at a mail Preview Custom message) (200 Hz) Gain: 1.0 States FullTapOrb-Pop/Commit (e.g., pop into full Preview Custom mail message) (150Hz) Gain: 1.0 States MicroTap Orb-Unavailable (e.g., press hard on anPreview Custom app icon that doesn't have any (200 Hz) associated quickactions) Gain: 1.0 System Haptics Device MicroTap Press power buttononce to lock device Locked Medium (150 Hz) Gain: 1.0 MiniTap Medium (150Hz) Gain: 1.0 Vibe on Vibe at 150 Hz Attach device to power sourceAttach that gradually increases in amplitude Ringtones Custom tactileReceive phone call or text message & Alerts output using one or more of:Vibe 150 Hz MicroTap 150 Hz MiniTap 150 Hz FullTap 150 Hz Solid-StateHome Button 1 (“Tick”) MiniTap Press home button with click option 1 230Hz selected Gain: 1.0 2 (“Tak”) MiniTap Press home button with clickoption 2 270 Hz selected Gain: 1.0 3 (“Tock”) MiniTap Press home buttonwith click option 3 300 Hz selected Gain: 1.0

It should be appreciated that device 100 is only one example of aportable multifunction device, and that device 100 optionally has moreor fewer components than shown, optionally combines two or morecomponents, or optionally has a different configuration or arrangementof the components. The various components shown in FIG. 1A areimplemented in hardware, software, firmware, or a combination thereof,including one or more signal processing and/or application specificintegrated circuits.

Memory 102 optionally includes high-speed random access memory andoptionally also includes non-volatile memory, such as one or moremagnetic disk storage devices, flash memory devices, or othernon-volatile solid-state memory devices. Access to memory 102 by othercomponents of device 100, such as CPU(s) 120 and the peripheralsinterface 118, is, optionally, controlled by memory controller 122.

Peripherals interface 118 can be used to couple input and outputperipherals of the device to CPU(s) 120 and memory 102. The one or moreprocessors 120 run or execute various software programs and/or sets ofinstructions stored in memory 102 to perform various functions fordevice 100 and to process data.

In some embodiments, peripherals interface 118, CPU(s) 120, and memorycontroller 122 are, optionally, implemented on a single chip, such aschip 104. In some other embodiments, they are, optionally, implementedon separate chips.

RF (radio frequency) circuitry 108 receives and sends RF signals, alsocalled electromagnetic signals. RF circuitry 108 converts electricalsignals to/from electromagnetic signals and communicates withcommunications networks and other communications devices via theelectromagnetic signals. RF circuitry 108 optionally includes well-knowncircuitry for performing these functions, including but not limited toan antenna system, an RF transceiver, one or more amplifiers, a tuner,one or more oscillators, a digital signal processor, a CODEC chipset, asubscriber identity module (SIM) card, memory, and so forth. RFcircuitry 108 optionally communicates with networks, such as theInternet, also referred to as the World Wide Web (WWW), an intranetand/or a wireless network, such as a cellular telephone network, awireless local area network (LAN) and/or a metropolitan area network(MAN), and other devices by wireless communication. The wirelesscommunication optionally uses any of a plurality of communicationsstandards, protocols and technologies, including but not limited toGlobal System for Mobile Communications (GSM), Enhanced Data GSMEnvironment (EDGE), high-speed downlink packet access (HSDPA),high-speed uplink packet access (HSDPA), Evolution, Data-Only (EV-DO),HSPA, HSPA+, Dual-Cell HSPA (DC-HSPA), long term evolution (LTE), nearfield communication (NFC), wideband code division multiple access(W-CDMA), code division multiple access (CDMA), time division multipleaccess (TDMA), Bluetooth, Wireless Fidelity (Wi-Fi) (e.g., IEEE 802.11a,IEEE 802.11ac, IEEE 802.11ax, IEEE 802.11b, IEEE 802.11g and/or IEEE802.11n), voice over Internet Protocol (VoIP), Wi-MAX, a protocol fore-mail (e.g., Internet message access protocol (IMAP) and/or post officeprotocol (POP)), instant messaging (e.g., extensible messaging andpresence protocol (XMPP), Session Initiation Protocol for InstantMessaging and Presence Leveraging Extensions (SIMPLE), Instant Messagingand Presence Service (IMPS)), and/or Short Message Service (SMS), or anyother suitable communication protocol, including communication protocolsnot yet developed as of the filing date of this document.

Audio circuitry 110, speaker 111, and microphone 113 provide an audiointerface between a user and device 100. Audio circuitry 110 receivesaudio data from peripherals interface 118, converts the audio data to anelectrical signal, and transmits the electrical signal to speaker 111.Speaker 111 converts the electrical signal to human-audible sound waves.Audio circuitry 110 also receives electrical signals converted bymicrophone 113 from sound waves. Audio circuitry 110 converts theelectrical signal to audio data and transmits the audio data toperipherals interface 118 for processing. Audio data is, optionally,retrieved from and/or transmitted to memory 102 and/or RF circuitry 108by peripherals interface 118. In some embodiments, audio circuitry 110also includes a headset jack (e.g., 212, FIG. 2A). The headset jackprovides an interface between audio circuitry 110 and removable audioinput/output peripherals, such as output-only headphones or a headsetwith both output (e.g., a headphone for one or both ears) and input(e.g., a microphone).

I/O subsystem 106 couples input/output peripherals on device 100, suchas touch-sensitive display system 112 and other input or control devices116, with peripherals interface 118. I/O subsystem 106 optionallyincludes display controller 156, optical sensor controller 158,intensity sensor controller 159, haptic feedback controller 161, and oneor more input controllers 160 for other input or control devices. Theone or more input controllers 160 receive/send electrical signalsfrom/to other input or control devices 116. The other input or controldevices 116 optionally include physical buttons (e.g., push buttons,rocker buttons, etc.), dials, slider switches, joysticks, click wheels,and so forth. In some alternate embodiments, input controller(s) 160are, optionally, coupled with any (or none) of the following: akeyboard, infrared port, USB port, stylus, and/or a pointer device suchas a mouse. The one or more buttons (e.g., 208, FIG. 2A) optionallyinclude an up/down button for volume control of speaker 111 and/ormicrophone 113. The one or more buttons optionally include a push button(e.g., 206, FIG. 2A).

Touch-sensitive display system 112 provides an input interface and anoutput interface between the device and a user. Display controller 156receives and/or sends electrical signals from/to touch-sensitive displaysystem 112. Touch-sensitive display system 112 displays visual output tothe user. The visual output optionally includes graphics, text, icons,video, and any combination thereof (collectively termed “graphics”). Insome embodiments, some or all of the visual output corresponds to userinterface objects. As used herein, the term “affordance” refers to auser-interactive graphical user interface object (e.g., a graphical userinterface object that is configured to respond to inputs directed towardthe graphical user interface object). Examples of user-interactivegraphical user interface objects include, without limitation, a button,slider, icon, selectable menu item, switch, hyperlink, or other userinterface control.

Touch-sensitive display system 112 has a touch-sensitive surface, sensoror set of sensors that accepts input from the user based on hapticand/or tactile contact. Touch-sensitive display system 112 and displaycontroller 156 (along with any associated modules and/or sets ofinstructions in memory 102) detect contact (and any movement or breakingof the contact) on touch-sensitive display system 112 and converts thedetected contact into interaction with user-interface objects (e.g., oneor more soft keys, icons, web pages or images) that are displayed ontouch-sensitive display system 112. In some embodiments, a point ofcontact between touch-sensitive display system 112 and the usercorresponds to a finger of the user or a stylus.

Touch-sensitive display system 112 optionally uses LCD (liquid crystaldisplay) technology, LPD (light emitting polymer display) technology, orLED (light emitting diode) technology, although other displaytechnologies are used in other embodiments. Touch-sensitive displaysystem 112 and display controller 156 optionally detect contact and anymovement or breaking thereof using any of a plurality of touch sensingtechnologies now known or later developed, including but not limited tocapacitive, resistive, infrared, and surface acoustic wave technologies,as well as other proximity sensor arrays or other elements fordetermining one or more points of contact with touch-sensitive displaysystem 112. In some embodiments, projected mutual capacitance sensingtechnology is used, such as that found in the iPhone®, iPod Touch®, andiPad® from Apple Inc. of Cupertino, Calif.

Touch-sensitive display system 112 optionally has a video resolution inexcess of 100 dpi. In some embodiments, the touch screen videoresolution is in excess of 400 dpi (e.g., 500 dpi, 800 dpi, or greater).The user optionally makes contact with touch-sensitive display system112 using any suitable object or appendage, such as a stylus, a finger,and so forth. In some embodiments, the user interface is designed towork with finger-based contacts and gestures, which can be less precisethan stylus-based input due to the larger area of contact of a finger onthe touch screen. In some embodiments, the device translates the roughfinger-based input into a precise pointer/cursor position or command forperforming the actions desired by the user.

In some embodiments, in addition to the touch screen, device 100optionally includes a touchpad (not shown) for activating ordeactivating particular functions. In some embodiments, the touchpad isa touch-sensitive area of the device that, unlike the touch screen, doesnot display visual output. The touchpad is, optionally, atouch-sensitive surface that is separate from touch-sensitive displaysystem 112 or an extension of the touch-sensitive surface formed by thetouch screen.

Device 100 also includes power system 162 for powering the variouscomponents. Power system 162 optionally includes a power managementsystem, one or more power sources (e.g., battery, alternating current(AC)), a recharging system, a power failure detection circuit, a powerconverter or inverter, a power status indicator (e.g., a light-emittingdiode (LED)) and any other components associated with the generation,management and distribution of power in portable devices.

Device 100 optionally also includes one or more optical sensors 164.FIG. 1A shows an optical sensor coupled with optical sensor controller158 in I/O subsystem 106. Optical sensor(s) 164 optionally includecharge-coupled device (CCD) or complementary metal-oxide semiconductor(CMOS) phototransistors. Optical sensor(s) 164 receive light from theenvironment, projected through one or more lens, and converts the lightto data representing an image. In conjunction with imaging module 143(also called a camera module), optical sensor(s) 164 optionally capturestill images and/or video. In some embodiments, an optical sensor islocated on the back of device 100, opposite touch-sensitive displaysystem 112 on the front of the device, so that the touch screen isenabled for use as a viewfinder for still and/or video imageacquisition. In some embodiments, another optical sensor is located onthe front of the device so that the user's image is obtained (e.g., forselfies, for videoconferencing while the user views the other videoconference participants on the touch screen, etc.).

Device 100 optionally also includes one or more contact intensitysensors 165. FIG. 1A shows a contact intensity sensor coupled withintensity sensor controller 159 in I/O subsystem 106. Contact intensitysensor(s) 165 optionally include one or more piezoresistive straingauges, capacitive force sensors, electric force sensors, piezoelectricforce sensors, optical force sensors, capacitive touch-sensitivesurfaces, or other intensity sensors (e.g., sensors used to measure theforce (or pressure) of a contact on a touch-sensitive surface). Contactintensity sensor(s) 165 receive contact intensity information (e.g.,pressure information or a proxy for pressure information) from theenvironment. In some embodiments, at least one contact intensity sensoris collocated with, or proximate to, a touch-sensitive surface (e.g.,touch-sensitive display system 112). In some embodiments, at least onecontact intensity sensor is located on the back of device 100, oppositetouch-screen display system 112 which is located on the front of device100.

Device 100 optionally also includes one or more proximity sensors 166.FIG. 1A shows proximity sensor 166 coupled with peripherals interface118. Alternately, proximity sensor 166 is coupled with input controller160 in I/O subsystem 106. In some embodiments, the proximity sensorturns off and disables touch-sensitive display system 112 when themultifunction device is placed near the user's ear (e.g., when the useris making a phone call).

Device 100 optionally also includes one or more tactile outputgenerators 167. FIG. 1A shows a tactile output generator coupled withhaptic feedback controller 161 in I/O subsystem 106. Tactile outputgenerator(s) 167 optionally include one or more electroacoustic devicessuch as speakers or other audio components and/or electromechanicaldevices that convert energy into linear motion such as a motor,solenoid, electroactive polymer, piezoelectric actuator, electrostaticactuator, or other tactile output generating component (e.g., acomponent that converts electrical signals into tactile outputs on thedevice). Tactile output generator(s) 167 receive tactile feedbackgeneration instructions from haptic feedback module 133 and generatestactile outputs on device 100 that are capable of being sensed by a userof device 100. In some embodiments, at least one tactile outputgenerator is collocated with, or proximate to, a touch-sensitive surface(e.g., touch-sensitive display system 112) and, optionally, generates atactile output by moving the touch-sensitive surface vertically (e.g.,in/out of a surface of device 100) or laterally (e.g., back and forth inthe same plane as a surface of device 100). In some embodiments, atleast one tactile output generator sensor is located on the back ofdevice 100, opposite touch-sensitive display system 112, which islocated on the front of device 100.

Device 100 optionally also includes one or more accelerometers 168. FIG.1A shows accelerometer 168 coupled with peripherals interface 118.Alternately, accelerometer 168 is, optionally, coupled with an inputcontroller 160 in I/O subsystem 106. In some embodiments, information isdisplayed on the touch-screen display in a portrait view or a landscapeview based on an analysis of data received from the one or moreaccelerometers. Device 100 optionally includes, in addition toaccelerometer(s) 168, a magnetometer (not shown) and a GPS (or GLONASSor other global navigation system) receiver (not shown) for obtaininginformation concerning the location and orientation (e.g., portrait orlandscape) of device 100.

In some embodiments, the software components stored in memory 102include operating system 126, communication module (or set ofinstructions) 128, contact/motion module (or set of instructions) 130,graphics module (or set of instructions) 132, haptic feedback module (orset of instructions) 133, text input module (or set of instructions)134, Global Positioning System (GPS) module (or set of instructions)135, and applications (or sets of instructions) 136. Furthermore, insome embodiments, memory 102 stores device/global internal state 157, asshown in FIGS. 1A and 3. Device/global internal state 157 includes oneor more of: active application state, indicating which applications, ifany, are currently active; display state, indicating what applications,views or other information occupy various regions of touch-sensitivedisplay system 112; sensor state, including information obtained fromthe device's various sensors and other input or control devices 116; andlocation and/or positional information concerning the device's locationand/or attitude.

Operating system 126 (e.g., iOS, Darwin, RTXC, LINUX, UNIX, OS X,WINDOWS, or an embedded operating system such as VxWorks) includesvarious software components and/or drivers for controlling and managinggeneral system tasks (e.g., memory management, storage device control,power management, etc.) and facilitates communication between varioushardware and software components.

Communication module 128 facilitates communication with other devicesover one or more external ports 124 and also includes various softwarecomponents for handling data received by RF circuitry 108 and/orexternal port 124. External port 124 (e.g., Universal Serial Bus (USB),FIREWIRE, etc.) is adapted for coupling directly to other devices orindirectly over a network (e.g., the Internet, wireless LAN, etc.). Insome embodiments, the external port is a multi-pin (e.g., 30-pin)connector that is the same as, or similar to and/or compatible with the30-pin connector used in some iPhone®, iPod Touch®, and iPad® devicesfrom Apple Inc. of Cupertino, Calif. In some embodiments, the externalport is a Lightning connector that is the same as, or similar to and/orcompatible with the Lightning connector used in some iPhone®, iPodTouch®, and iPad® devices from Apple Inc. of Cupertino, Calif.

Contact/motion module 130 optionally detects contact withtouch-sensitive display system 112 (in conjunction with displaycontroller 156) and other touch-sensitive devices (e.g., a touchpad orphysical click wheel). Contact/motion module 130 includes varioussoftware components for performing various operations related todetection of contact (e.g., by a finger or by a stylus), such asdetermining if contact has occurred (e.g., detecting a finger-downevent), determining an intensity of the contact (e.g., the force orpressure of the contact or a substitute for the force or pressure of thecontact), determining if there is movement of the contact and trackingthe movement across the touch-sensitive surface (e.g., detecting one ormore finger-dragging events), and determining if the contact has ceased(e.g., detecting a finger-up event or a break in contact).Contact/motion module 130 receives contact data from the touch-sensitivesurface. Determining movement of the point of contact, which isrepresented by a series of contact data, optionally includes determiningspeed (magnitude), velocity (magnitude and direction), and/or anacceleration (a change in magnitude and/or direction) of the point ofcontact. These operations are, optionally, applied to single contacts(e.g., one finger contacts or stylus contacts) or to multiplesimultaneous contacts (e.g., “multitouch”/multiple finger contacts). Insome embodiments, contact/motion module 130 and display controller 156detect contact on a touchpad.

Contact/motion module 130 optionally detects a gesture input by a user.Different gestures on the touch-sensitive surface have different contactpatterns (e.g., different motions, timings, and/or intensities ofdetected contacts). Thus, a gesture is, optionally, detected bydetecting a particular contact pattern. For example, detecting a fingertap gesture includes detecting a finger-down event followed by detectinga finger-up (lift off) event at the same position (or substantially thesame position) as the finger-down event (e.g., at the position of anicon). As another example, detecting a finger swipe gesture on thetouch-sensitive surface includes detecting a finger-down event followedby detecting one or more finger-dragging events, and subsequentlyfollowed by detecting a finger-up (lift off) event. Similarly, tap,swipe, drag, and other gestures are optionally detected for a stylus bydetecting a particular contact pattern for the stylus.

In some embodiments, detecting a finger tap gesture (e.g., ontouch-sensitive display system 112) depends on the length of timebetween detecting the finger-down event and the finger-up event, but isindependent of the intensity of the finger contact between detecting thefinger-down event and the finger-up event. In some embodiments, a tapgesture is detected in accordance with a determination that the lengthof time between the finger-down event and the finger-up event is lessthan a predetermined value (e.g., less than 0.1, 0.2, 0.3, 0.4 or 0.5seconds), independent of whether the intensity of the finger contactduring the tap meets a given intensity threshold (greater than a nominalcontact-detection intensity threshold), such as a light press or deeppress intensity threshold. Thus, a finger tap gesture can satisfy inputcriteria that are configured to be met even when the characteristicintensity of a contact does not satisfy a given intensity threshold. Forclarity, the finger contact in a tap gesture typically needs to satisfya nominal contact-detection intensity threshold, below which the contactis not detected, in order for the finger-down event to be detected. Asimilar analysis applies to detecting a tap gesture by a stylus or othercontact. In cases where the device is configured to detect a finger orstylus contact hovering over a touch sensitive surface, the nominalcontact-detection intensity threshold optionally does not correspond tophysical contact between the finger or stylus and the touch sensitivesurface.

The same concepts apply in an analogous manner to other types ofgestures. For example, a swipe gesture, a pinch gesture, a depinchgesture, and/or a long press gesture are optionally detected (e.g., ontouch-sensitive display system 112) based on the satisfaction ofcriteria that are independent of intensities of contacts included in thegesture. For example, a swipe gesture is detected based on an amount ofmovement of one or more contacts; a pinch gesture is detected based onmovement of two or more contacts towards each other; a depinch gestureis detected based on movement of two or more contacts away from eachother; and a long press gesture is detected based on a duration of thecontact on the touch-sensitive surface with less than a threshold amountof movement. As such, the statement that gesture recognition criteriaare configured to be met when a contact in a gesture has an intensitybelow a respective intensity threshold means that the gesturerecognition criteria are capable of being satisfied even if thecontact(s) in the gesture do not reach the respective intensitythreshold. It should be understood, however, that this statement doesnot preclude the gesture recognition criteria from being satisfied incircumstances where one or more of the contacts in the gesture do reachor exceed the respective intensity threshold. For example, a tap gestureis configured to be detected if the finger-down and finger-up event aredetected within a predefined time period, without regard to whether thecontact is above or below the respective intensity threshold during thepredefined time period, and a swipe gesture is configured to be detectedif the contact movement is greater than a predefined magnitude, even ifthe contact is above the respective intensity threshold at the end ofthe contact movement.

Contact intensity thresholds, duration thresholds, and movementthresholds are, in some circumstances, combined in a variety ofdifferent combinations in order to create heuristics for distinguishingtwo or more different gestures directed to the same input element orregion so that multiple different interactions with the same inputelement are enabled to provide a richer set of user interactions andresponses. The statement that a particular set of gesture recognitioncriteria are configured to be met when a contact in a gesture has anintensity below a respective intensity threshold does not preclude theconcurrent evaluation of other intensity-dependent gesture recognitioncriteria to identify other gestures that do have a criteria that is metwhen a gesture includes a contact with an intensity above the respectiveintensity threshold. For example, in some circumstances, first gesturerecognition criteria for a first gesture—which are configured to be metwhen a gesture has an intensity below a respective intensitythreshold—are in competition with second gesture recognition criteriafor a second gesture—which are dependent on the gesture reaching therespective intensity threshold. In such competitions, the gesture is,optionally, not recognized as meeting the first gesture recognitioncriteria for the first gesture if the second gesture recognitioncriteria for the second gesture are met first. For example, if a contactreaches the respective intensity threshold before the contact moves by apredefined amount of movement, a deep press gesture is detected ratherthan a swipe gesture. Conversely, if the contact moves by the predefinedamount of movement before the contact reaches the respective intensitythreshold, a swipe gesture is detected rather than a deep press gesture.Even in such circumstances, the first gesture recognition criteria forthe first gesture are still configured to be met when a contact in thegesture has an intensity below the respective intensity because if thecontact stayed below the respective intensity threshold until an end ofthe gesture (e.g., a swipe gesture with a contact that does not increaseto an intensity above the respective intensity threshold), the gesturewould have been recognized by the first gesture recognition criteria asa swipe gesture. As such, particular gesture recognition criteria thatare configured to be met when an intensity of a contact remains below arespective intensity threshold will (A) in some circumstances ignore theintensity of the contact with respect to the intensity threshold (e.g.for a tap gesture) and/or (B) in some circumstances still be dependenton the intensity of the contact with respect to the intensity thresholdin the sense that the particular gesture recognition criteria (e.g., fora long press gesture) will fail if a competing set ofintensity-dependent gesture recognition criteria (e.g., for a deep pressgesture) recognize an input as corresponding to an intensity-dependentgesture before the particular gesture recognition criteria recognize agesture corresponding to the input (e.g., for a long press gesture thatis competing with a deep press gesture for recognition).

Graphics module 132 includes various known software components forrendering and displaying graphics on touch-sensitive display system 112or other display, including components for changing the visual impact(e.g., brightness, transparency, saturation, contrast or other visualproperty) of graphics that are displayed. As used herein, the term“graphics” includes any object that can be displayed to a user,including without limitation text, web pages, icons (such asuser-interface objects including soft keys), digital images, videos,animations and the like.

In some embodiments, graphics module 132 stores data representinggraphics to be used. Each graphic is, optionally, assigned acorresponding code. Graphics module 132 receives, from applicationsetc., one or more codes specifying graphics to be displayed along with,if necessary, coordinate data and other graphic property data, and thengenerates screen image data to output to display controller 156.

Haptic feedback module 133 includes various software components forgenerating instructions used by tactile output generator(s) 167 toproduce tactile outputs at one or more locations on device 100 inresponse to user interactions with device 100.

Text input module 134, which is, optionally, a component of graphicsmodule 132, provides soft keyboards for entering text in variousapplications (e.g., contacts 137, e-mail 140, IM 141, browser 147, andany other application that needs text input).

GPS module 135 determines the location of the device and provides thisinformation for use in various applications (e.g., to telephone 138 foruse in location-based dialing, to camera 143 as picture/video metadata,and to applications that provide location-based services such as weatherwidgets, local yellow page widgets, and map/navigation widgets).

Applications 136 optionally include the following modules (or sets ofinstructions), or a subset or superset thereof:

-   -   contacts module 137 (sometimes called an address book or contact        list);    -   telephone module 138;    -   video conferencing module 139;    -   e-mail client module 140;    -   instant messaging (IM) module 141;    -   workout support module 142;    -   camera module 143 for still and/or video images;    -   image management module 144;    -   browser module 147;    -   calendar module 148;    -   widget modules 149, which optionally include one or more of:        weather widget 149-1, stocks widget 149-2, calculator widget        149-3, alarm clock widget 149-4, dictionary widget 149-5, and        other widgets obtained by the user, as well as user-created        widgets 149-6;    -   widget creator module 150 for making user-created widgets 149-6;    -   search module 151;    -   video and music player module 152, which is, optionally, made up        of a video player module and a music player module;    -   notes module 153;    -   map module 154; and/or    -   online video module 155.

Examples of other applications 136 that are, optionally, stored inmemory 102 include other word processing applications, other imageediting applications, drawing applications, presentation applications,JAVA-enabled applications, encryption, digital rights management, voicerecognition, and voice replication.

In conjunction with touch-sensitive display system 112, displaycontroller 156, contact module 130, graphics module 132, and text inputmodule 134, contacts module 137 includes executable instructions tomanage an address book or contact list (e.g., stored in applicationinternal state 192 of contacts module 137 in memory 102 or memory 370),including: adding name(s) to the address book; deleting name(s) from theaddress book; associating telephone number(s), e-mail address(es),physical address(es) or other information with a name; associating animage with a name; categorizing and sorting names; providing telephonenumbers and/or e-mail addresses to initiate and/or facilitatecommunications by telephone 138, video conference 139, e-mail 140, or IM141; and so forth.

In conjunction with RF circuitry 108, audio circuitry 110, speaker 111,microphone 113, touch-sensitive display system 112, display controller156, contact module 130, graphics module 132, and text input module 134,telephone module 138 includes executable instructions to enter asequence of characters corresponding to a telephone number, access oneor more telephone numbers in address book 137, modify a telephone numberthat has been entered, dial a respective telephone number, conduct aconversation and disconnect or hang up when the conversation iscompleted. As noted above, the wireless communication optionally usesany of a plurality of communications standards, protocols andtechnologies.

In conjunction with RF circuitry 108, audio circuitry 110, speaker 111,microphone 113, touch-sensitive display system 112, display controller156, optical sensor(s) 164, optical sensor controller 158, contactmodule 130, graphics module 132, text input module 134, contact list137, and telephone module 138, videoconferencing module 139 includesexecutable instructions to initiate, conduct, and terminate a videoconference between a user and one or more other participants inaccordance with user instructions.

In conjunction with RF circuitry 108, touch-sensitive display system112, display controller 156, contact module 130, graphics module 132,and text input module 134, e-mail client module 140 includes executableinstructions to create, send, receive, and manage e-mail in response touser instructions. In conjunction with image management module 144,e-mail client module 140 makes it very easy to create and send e-mailswith still or video images taken with camera module 143.

In conjunction with RF circuitry 108, touch-sensitive display system112, display controller 156, contact module 130, graphics module 132,and text input module 134, the instant messaging module 141 includesexecutable instructions to enter a sequence of characters correspondingto an instant message, to modify previously entered characters, totransmit a respective instant message (for example, using a ShortMessage Service (SMS) or Multimedia Message Service (MMS) protocol fortelephony-based instant messages or using XMPP, SIMPLE, Apple PushNotification Service (APNs) or IMPS for Internet-based instantmessages), to receive instant messages and to view received instantmessages. In some embodiments, transmitted and/or received instantmessages optionally include graphics, photos, audio files, video filesand/or other attachments as are supported in a MMS and/or an EnhancedMessaging Service (EMS). As used herein, “instant messaging” refers toboth telephony-based messages (e.g., messages sent using SMS or MMS) andInternet-based messages (e.g., messages sent using XMPP, SIMPLE, APNs,or IMPS).

In conjunction with RF circuitry 108, touch-sensitive display system112, display controller 156, contact module 130, graphics module 132,text input module 134, GPS module 135, map module 154, and music playermodule 152, workout support module 142 includes executable instructionsto create workouts (e.g., with time, distance, and/or calorie burninggoals); communicate with workout sensors (in sports devices and smartwatches); receive workout sensor data; calibrate sensors used to monitora workout; select and play music for a workout; and display, store andtransmit workout data.

In conjunction with touch-sensitive display system 112, displaycontroller 156, optical sensor(s) 164, optical sensor controller 158,contact module 130, graphics module 132, and image management module144, camera module 143 includes executable instructions to capture stillimages or video (including a video stream) and store them into memory102, modify characteristics of a still image or video, and/or delete astill image or video from memory 102.

In conjunction with touch-sensitive display system 112, displaycontroller 156, contact module 130, graphics module 132, text inputmodule 134, and camera module 143, image management module 144 includesexecutable instructions to arrange, modify (e.g., edit), or otherwisemanipulate, label, delete, present (e.g., in a digital slide show oralbum), and store still and/or video images.

In conjunction with RF circuitry 108, touch-sensitive display system112, display system controller 156, contact module 130, graphics module132, and text input module 134, browser module 147 includes executableinstructions to browse the Internet in accordance with userinstructions, including searching, linking to, receiving, and displayingweb pages or portions thereof, as well as attachments and other fileslinked to web pages.

In conjunction with RF circuitry 108, touch-sensitive display system112, display system controller 156, contact module 130, graphics module132, text input module 134, e-mail client module 140, and browser module147, calendar module 148 includes executable instructions to create,display, modify, and store calendars and data associated with calendars(e.g., calendar entries, to do lists, etc.) in accordance with userinstructions.

In conjunction with RF circuitry 108, touch-sensitive display system112, display system controller 156, contact module 130, graphics module132, text input module 134, and browser module 147, widget modules 149are mini-applications that are, optionally, downloaded and used by auser (e.g., weather widget 149-1, stocks widget 149-2, calculator widget149-3, alarm clock widget 149-4, and dictionary widget 149-5) or createdby the user (e.g., user-created widget 149-6). In some embodiments, awidget includes an HTML (Hypertext Markup Language) file, a CSS(Cascading Style Sheets) file, and a JavaScript file. In someembodiments, a widget includes an XML (Extensible Markup Language) fileand a JavaScript file (e.g., Yahoo! Widgets).

In conjunction with RF circuitry 108, touch-sensitive display system112, display system controller 156, contact module 130, graphics module132, text input module 134, and browser module 147, the widget creatormodule 150 includes executable instructions to create widgets (e.g.,turning a user-specified portion of a web page into a widget).

In conjunction with touch-sensitive display system 112, display systemcontroller 156, contact module 130, graphics module 132, and text inputmodule 134, search module 151 includes executable instructions to searchfor text, music, sound, image, video, and/or other files in memory 102that match one or more search criteria (e.g., one or more user-specifiedsearch terms) in accordance with user instructions.

In conjunction with touch-sensitive display system 112, display systemcontroller 156, contact module 130, graphics module 132, audio circuitry110, speaker 111, RF circuitry 108, and browser module 147, video andmusic player module 152 includes executable instructions that allow theuser to download and play back recorded music and other sound filesstored in one or more file formats, such as MP3 or AAC files, andexecutable instructions to display, present or otherwise play backvideos (e.g., on touch-sensitive display system 112, or on an externaldisplay connected wirelessly or via external port 124). In someembodiments, device 100 optionally includes the functionality of an MP3player, such as an iPod (trademark of Apple Inc.).

In conjunction with touch-sensitive display system 112, displaycontroller 156, contact module 130, graphics module 132, and text inputmodule 134, notes module 153 includes executable instructions to createand manage notes, to do lists, and the like in accordance with userinstructions.

In conjunction with RF circuitry 108, touch-sensitive display system112, display system controller 156, contact module 130, graphics module132, text input module 134, GPS module 135, and browser module 147, mapmodule 154 includes executable instructions to receive, display, modify,and store maps and data associated with maps (e.g., driving directions;data on stores and other points of interest at or near a particularlocation; and other location-based data) in accordance with userinstructions.

In conjunction with touch-sensitive display system 112, display systemcontroller 156, contact module 130, graphics module 132, audio circuitry110, speaker 111, RF circuitry 108, text input module 134, e-mail clientmodule 140, and browser module 147, online video module 155 includesexecutable instructions that allow the user to access, browse, receive(e.g., by streaming and/or download), play back (e.g., on the touchscreen 112, or on an external display connected wirelessly or viaexternal port 124), send an e-mail with a link to a particular onlinevideo, and otherwise manage online videos in one or more file formats,such as H.264. In some embodiments, instant messaging module 141, ratherthan e-mail client module 140, is used to send a link to a particularonline video.

Each of the above identified modules and applications correspond to aset of executable instructions for performing one or more functionsdescribed above and the methods described in this application (e.g., thecomputer-implemented methods and other information processing methodsdescribed herein). These modules (i.e., sets of instructions) need notbe implemented as separate software programs, procedures or modules, andthus various subsets of these modules are, optionally, combined orotherwise re-arranged in various embodiments. In some embodiments,memory 102 optionally stores a subset of the modules and data structuresidentified above. Furthermore, memory 102 optionally stores additionalmodules and data structures not described above.

In some embodiments, device 100 is a device where operation of apredefined set of functions on the device is performed exclusivelythrough a touch screen and/or a touchpad. By using a touch screen and/ora touchpad as the primary input control device for operation of device100, the number of physical input control devices (such as push buttons,dials, and the like) on device 100 is, optionally, reduced.

The predefined set of functions that are performed exclusively through atouch screen and/or a touchpad optionally include navigation betweenuser interfaces. In some embodiments, the touchpad, when touched by theuser, navigates device 100 to a main, home, or root menu from any userinterface that is displayed on device 100. In such embodiments, a “menubutton” is implemented using a touchpad. In some other embodiments, themenu button is a physical push button or other physical input controldevice instead of a touchpad.

FIG. 1B is a block diagram illustrating example components for eventhandling in accordance with some embodiments. In some embodiments,memory 102 (in FIG. 1A) or 370 (FIG. 3) includes event sorter 170 (e.g.,in operating system 126) and a respective application 136-1 (e.g., anyof the aforementioned applications 136, 137-155, 380-390).

Event sorter 170 receives event information and determines theapplication 136-1 and application view 191 of application 136-1 to whichto deliver the event information. Event sorter 170 includes eventmonitor 171 and event dispatcher module 174. In some embodiments,application 136-1 includes application internal state 192, whichindicates the current application view(s) displayed on touch-sensitivedisplay system 112 when the application is active or executing. In someembodiments, device/global internal state 157 is used by event sorter170 to determine which application(s) is (are) currently active, andapplication internal state 192 is used by event sorter 170 to determineapplication views 191 to which to deliver event information.

In some embodiments, application internal state 192 includes additionalinformation, such as one or more of: resume information to be used whenapplication 136-1 resumes execution, user interface state informationthat indicates information being displayed or that is ready for displayby application 136-1, a state queue for enabling the user to go back toa prior state or view of application 136-1, and a redo/undo queue ofprevious actions taken by the user.

Event monitor 171 receives event information from peripherals interface118. Event information includes information about a sub-event (e.g., auser touch on touch-sensitive display system 112, as part of amulti-touch gesture). Peripherals interface 118 transmits information itreceives from I/O subsystem 106 or a sensor, such as proximity sensor166, accelerometer(s) 168, and/or microphone 113 (through audiocircuitry 110). Information that peripherals interface 118 receives fromI/O subsystem 106 includes information from touch-sensitive displaysystem 112 or a touch-sensitive surface.

In some embodiments, event monitor 171 sends requests to the peripheralsinterface 118 at predetermined intervals. In response, peripheralsinterface 118 transmits event information. In other embodiments,peripheral interface 118 transmits event information only when there isa significant event (e.g., receiving an input above a predeterminednoise threshold and/or for more than a predetermined duration).

In some embodiments, event sorter 170 also includes a hit viewdetermination module 172 and/or an active event recognizer determinationmodule 173.

Hit view determination module 172 provides software procedures fordetermining where a sub-event has taken place within one or more views,when touch-sensitive display system 112 displays more than one view.Views are made up of controls and other elements that a user can see onthe display.

Another aspect of the user interface associated with an application is aset of views, sometimes herein called application views or userinterface windows, in which information is displayed and touch-basedgestures occur. The application views (of a respective application) inwhich a touch is detected optionally correspond to programmatic levelswithin a programmatic or view hierarchy of the application. For example,the lowest level view in which a touch is detected is, optionally,called the hit view, and the set of events that are recognized as properinputs are, optionally, determined based, at least in part, on the hitview of the initial touch that begins a touch-based gesture.

Hit view determination module 172 receives information related tosub-events of a touch-based gesture. When an application has multipleviews organized in a hierarchy, hit view determination module 172identifies a hit view as the lowest view in the hierarchy which shouldhandle the sub-event. In most circumstances, the hit view is the lowestlevel view in which an initiating sub-event occurs (i.e., the firstsub-event in the sequence of sub-events that form an event or potentialevent). Once the hit view is identified by the hit view determinationmodule, the hit view typically receives all sub-events related to thesame touch or input source for which it was identified as the hit view.

Active event recognizer determination module 173 determines which viewor views within a view hierarchy should receive a particular sequence ofsub-events. In some embodiments, active event recognizer determinationmodule 173 determines that only the hit view should receive a particularsequence of sub-events. In other embodiments, active event recognizerdetermination module 173 determines that all views that include thephysical location of a sub-event are actively involved views, andtherefore determines that all actively involved views should receive aparticular sequence of sub-events. In other embodiments, even if touchsub-events were entirely confined to the area associated with oneparticular view, views higher in the hierarchy would still remain asactively involved views.

Event dispatcher module 174 dispatches the event information to an eventrecognizer (e.g., event recognizer 180). In embodiments including activeevent recognizer determination module 173, event dispatcher module 174delivers the event information to an event recognizer determined byactive event recognizer determination module 173. In some embodiments,event dispatcher module 174 stores in an event queue the eventinformation, which is retrieved by a respective event receiver module182.

In some embodiments, operating system 126 includes event sorter 170.Alternatively, application 136-1 includes event sorter 170. In yet otherembodiments, event sorter 170 is a stand-alone module, or a part ofanother module stored in memory 102, such as contact/motion module 130.

In some embodiments, application 136-1 includes a plurality of eventhandlers 190 and one or more application views 191, each of whichincludes instructions for handling touch events that occur within arespective view of the application's user interface. Each applicationview 191 of the application 136-1 includes one or more event recognizers180. Typically, a respective application view 191 includes a pluralityof event recognizers 180. In other embodiments, one or more of eventrecognizers 180 are part of a separate module, such as a user interfacekit (not shown) or a higher level object from which application 136-1inherits methods and other properties. In some embodiments, a respectiveevent handler 190 includes one or more of: data updater 176, objectupdater 177, GUI updater 178, and/or event data 179 received from eventsorter 170. Event handler 190 optionally utilizes or calls data updater176, object updater 177 or GUI updater 178 to update the applicationinternal state 192. Alternatively, one or more of the application views191 includes one or more respective event handlers 190. Also, in someembodiments, one or more of data updater 176, object updater 177, andGUI updater 178 are included in a respective application view 191.

A respective event recognizer 180 receives event information (e.g.,event data 179) from event sorter 170, and identifies an event from theevent information. Event recognizer 180 includes event receiver 182 andevent comparator 184. In some embodiments, event recognizer 180 alsoincludes at least a subset of: metadata 183, and event deliveryinstructions 188 (which optionally include sub-event deliveryinstructions).

Event receiver 182 receives event information from event sorter 170. Theevent information includes information about a sub-event, for example, atouch or a touch movement. Depending on the sub-event, the eventinformation also includes additional information, such as location ofthe sub-event. When the sub-event concerns motion of a touch, the eventinformation optionally also includes speed and direction of thesub-event. In some embodiments, events include rotation of the devicefrom one orientation to another (e.g., from a portrait orientation to alandscape orientation, or vice versa), and the event informationincludes corresponding information about the current orientation (alsocalled device attitude) of the device.

Event comparator 184 compares the event information to predefined eventor sub-event definitions and, based on the comparison, determines anevent or sub-event, or determines or updates the state of an event orsub-event. In some embodiments, event comparator 184 includes eventdefinitions 186. Event definitions 186 contain definitions of events(e.g., predefined sequences of sub-events), for example, event 1(187-1), event 2 (187-2), and others. In some embodiments, sub-events inan event 187 include, for example, touch begin, touch end, touchmovement, touch cancellation, and multiple touching. In one example, thedefinition for event 1 (187-1) is a double tap on a displayed object.The double tap, for example, comprises a first touch (touch begin) onthe displayed object for a predetermined phase, a first lift-off (touchend) for a predetermined phase, a second touch (touch begin) on thedisplayed object for a predetermined phase, and a second lift-off (touchend) for a predetermined phase. In another example, the definition forevent 2 (187-2) is a dragging on a displayed object. The dragging, forexample, comprises a touch (or contact) on the displayed object for apredetermined phase, a movement of the touch across touch-sensitivedisplay system 112, and lift-off of the touch (touch end). In someembodiments, the event also includes information for one or moreassociated event handlers 190.

In some embodiments, event definition 187 includes a definition of anevent for a respective user-interface object. In some embodiments, eventcomparator 184 performs a hit test to determine which user-interfaceobject is associated with a sub-event. For example, in an applicationview in which three user-interface objects are displayed ontouch-sensitive display system 112, when a touch is detected ontouch-sensitive display system 112, event comparator 184 performs a hittest to determine which of the three user-interface objects isassociated with the touch (sub-event). If each displayed object isassociated with a respective event handler 190, the event comparatoruses the result of the hit test to determine which event handler 190should be activated. For example, event comparator 184 selects an eventhandler associated with the sub-event and the object triggering the hittest.

In some embodiments, the definition for a respective event 187 alsoincludes delayed actions that delay delivery of the event informationuntil after it has been determined whether the sequence of sub-eventsdoes or does not correspond to the event recognizer's event type.

When a respective event recognizer 180 determines that the series ofsub-events do not match any of the events in event definitions 186, therespective event recognizer 180 enters an event impossible, eventfailed, or event ended state, after which it disregards subsequentsub-events of the touch-based gesture. In this situation, other eventrecognizers, if any, that remain active for the hit view continue totrack and process sub-events of an ongoing touch-based gesture.

In some embodiments, a respective event recognizer 180 includes metadata183 with configurable properties, flags, and/or lists that indicate howthe event delivery system should perform sub-event delivery to activelyinvolved event recognizers. In some embodiments, metadata 183 includesconfigurable properties, flags, and/or lists that indicate how eventrecognizers interact, or are enabled to interact, with one another. Insome embodiments, metadata 183 includes configurable properties, flags,and/or lists that indicate whether sub-events are delivered to varyinglevels in the view or programmatic hierarchy.

In some embodiments, a respective event recognizer 180 activates eventhandler 190 associated with an event when one or more particularsub-events of an event are recognized. In some embodiments, a respectiveevent recognizer 180 delivers event information associated with theevent to event handler 190. Activating an event handler 190 is distinctfrom sending (and deferred sending) sub-events to a respective hit view.In some embodiments, event recognizer 180 throws a flag associated withthe recognized event, and event handler 190 associated with the flagcatches the flag and performs a predefined process.

In some embodiments, event delivery instructions 188 include sub-eventdelivery instructions that deliver event information about a sub-eventwithout activating an event handler. Instead, the sub-event deliveryinstructions deliver event information to event handlers associated withthe series of sub-events or to actively involved views. Event handlersassociated with the series of sub-events or with actively involved viewsreceive the event information and perform a predetermined process.

In some embodiments, data updater 176 creates and updates data used inapplication 136-1. For example, data updater 176 updates the telephonenumber used in contacts module 137, or stores a video file used in videoplayer module 152. In some embodiments, object updater 177 creates andupdates objects used in application 136-1. For example, object updater177 creates a new user-interface object or updates the position of auser-interface object. GUI updater 178 updates the GUI. For example, GUIupdater 178 prepares display information and sends it to graphics module132 for display on a touch-sensitive display.

In some embodiments, event handler(s) 190 includes or has access to dataupdater 176, object updater 177, and GUI updater 178. In someembodiments, data updater 176, object updater 177, and GUI updater 178are included in a single module of a respective application 136-1 orapplication view 191. In other embodiments, they are included in two ormore software modules.

It shall be understood that the foregoing discussion regarding eventhandling of user touches on touch-sensitive displays also applies toother forms of user inputs to operate multifunction devices 100 withinput-devices, not all of which are initiated on touch screens. Forexample, mouse movement and mouse button presses, optionally coordinatedwith single or multiple keyboard presses or holds; contact movementssuch as taps, drags, scrolls, etc., on touch-pads; pen stylus inputs;movement of the device; oral instructions; detected eye movements;biometric inputs; and/or any combination thereof are optionally utilizedas inputs corresponding to sub-events which define an event to berecognized.

FIG. 1C is a block diagram illustrating a tactile output module inaccordance with some embodiments. In some embodiments, I/O subsystem 106(e.g., haptic feedback controller 161 (FIG. 1A) and/or other inputcontroller(s) 160 (FIG. 1A)) includes at least some of the examplecomponents shown in FIG. 1C. In some embodiments, peripherals interface118 includes at least some of the example components shown in FIG. 1C.

In some embodiments, the tactile output module includes haptic feedbackmodule 133. In some embodiments, haptic feedback module 133 aggregatesand combines tactile outputs for user interface feedback from softwareapplications on the electronic device (e.g., feedback that is responsiveto user inputs that correspond to displayed user interfaces and alertsand other notifications that indicate the performance of operations oroccurrence of events in user interfaces of the electronic device).Haptic feedback module 133 includes one or more of: waveform module 123(for providing waveforms used for generating tactile outputs), mixer 125(for mixing waveforms, such as waveforms in different channels),compressor 127 (for reducing or compressing a dynamic range of thewaveforms), low-pass filter 129 (for filtering out high frequency signalcomponents in the waveforms), and thermal controller 131 (for adjustingthe waveforms in accordance with thermal conditions). In someembodiments, haptic feedback module 133 is included in haptic feedbackcontroller 161 (FIG. 1A). In some embodiments, a separate unit of hapticfeedback module 133 (or a separate implementation of haptic feedbackmodule 133) is also included in an audio controller (e.g., audiocircuitry 110, FIG. 1A) and used for generating audio signals. In someembodiments, a single haptic feedback module 133 is used for generatingaudio signals and generating waveforms for tactile outputs.

In some embodiments, haptic feedback module 133 also includes triggermodule 121 (e.g., a software application, operating system, or othersoftware module that determines a tactile output is to be generated andinitiates the process for generating the corresponding tactile output).In some embodiments, trigger module 121 generates trigger signals forinitiating generation of waveforms (e.g., by waveform module 123). Forexample, trigger module 121 generates trigger signals based on presettiming criteria. In some embodiments, trigger module 121 receivestrigger signals from outside haptic feedback module 133 (e.g., in someembodiments, haptic feedback module 133 receives trigger signals fromhardware input processing module 146 located outside haptic feedbackmodule 133) and relays the trigger signals to other components withinhaptic feedback module 133 (e.g., waveform module 123) or softwareapplications that trigger operations (e.g., with trigger module 121)based on activation of the hardware input device (e.g., a home button).In some embodiments, trigger module 121 also receives tactile feedbackgeneration instructions (e.g., from haptic feedback module 133, FIGS. 1Aand 3). In some embodiments, trigger module 121 generates triggersignals in response to haptic feedback module 133 (or trigger module 121in haptic feedback module 133) receiving tactile feedback instructions(e.g., from haptic feedback module 133, FIGS. 1A and 3).

Waveform module 123 receives trigger signals (e.g., from trigger module121) as an input, and in response to receiving trigger signals, provideswaveforms for generation of one or more tactile outputs (e.g., waveformsselected from a predefined set of waveforms designated for use bywaveform module 123, such as the waveforms described in greater detailbelow with reference to FIGS. 4F-4G).

Mixer 125 receives waveforms (e.g., from waveform module 123) as aninput, and mixes together the waveforms. For example, when mixer 125receives two or more waveforms (e.g., a first waveform in a firstchannel and a second waveform that at least partially overlaps with thefirst waveform in a second channel) mixer 125 outputs a combinedwaveform that corresponds to a sum of the two or more waveforms. In someembodiments, mixer 125 also modifies one or more waveforms of the two ormore waveforms to emphasize particular waveform(s) over the rest of thetwo or more waveforms (e.g., by increasing a scale of the particularwaveform(s) and/or decreasing a scale of the rest of the waveforms). Insome circumstances, mixer 125 selects one or more waveforms to removefrom the combined waveform (e.g., the waveform from the oldest source isdropped when there are waveforms from more than three sources that havebeen requested to be output concurrently by tactile output generator167)

Compressor 127 receives waveforms (e.g., a combined waveform from mixer125) as an input, and modifies the waveforms. In some embodiments,compressor 127 reduces the waveforms (e.g., in accordance with physicalspecifications of tactile output generators 167 (FIG. 1A) or 357 (FIG.3)) so that tactile outputs corresponding to the waveforms are reduced.In some embodiments, compressor 127 limits the waveforms, such as byenforcing a predefined maximum amplitude for the waveforms. For example,compressor 127 reduces amplitudes of portions of waveforms that exceed apredefined amplitude threshold while maintaining amplitudes of portionsof waveforms that do not exceed the predefined amplitude threshold. Insome embodiments, compressor 127 reduces a dynamic range of thewaveforms. In some embodiments, compressor 127 dynamically reduces thedynamic range of the waveforms so that the combined waveforms remainwithin performance specifications of the tactile output generator 167(e.g., force and/or moveable mass displacement limits).

Low-pass filter 129 receives waveforms (e.g., compressed waveforms fromcompressor 127) as an input, and filters (e.g., smooths) the waveforms(e.g., removes or reduces high frequency signal components in thewaveforms). For example, in some instances, compressor 127 includes, incompressed waveforms, extraneous signals (e.g., high frequency signalcomponents) that interfere with the generation of tactile outputs and/orexceed performance specifications of tactile output generator 167 whenthe tactile outputs are generated in accordance with the compressedwaveforms. Low-pass filter 129 reduces or removes such extraneoussignals in the waveforms.

Thermal controller 131 receives waveforms (e.g., filtered waveforms fromlow-pass filter 129) as an input, and adjusts the waveforms inaccordance with thermal conditions of device 100 (e.g., based oninternal temperatures detected within device 100, such as thetemperature of haptic feedback controller 161, and/or externaltemperatures detected by device 100). For example, in some cases, theoutput of haptic feedback controller 161 varies depending on thetemperature (e.g. haptic feedback controller 161, in response toreceiving same waveforms, generates a first tactile output when hapticfeedback controller 161 is at a first temperature and generates a secondtactile output when haptic feedback controller 161 is at a secondtemperature that is distinct from the first temperature). For example,the magnitude (or the amplitude) of the tactile outputs may varydepending on the temperature. To reduce the effect of the temperaturevariations, the waveforms are modified (e.g., an amplitude of thewaveforms is increased or decreased based on the temperature).

In some embodiments, haptic feedback module 133 (e.g., trigger module121) is coupled to hardware input processing module 146. In someembodiments, other input controller(s) 160 in FIG. 1A includes hardwareinput processing module 146. In some embodiments, hardware inputprocessing module 146 receives inputs from hardware input device 145(e.g., other input or control devices 116 in FIG. 1A, such as a homebutton). In some embodiments, hardware input device 145 is any inputdevice described herein, such as touch-sensitive display system 112(FIG. 1A), keyboard/mouse 350 (FIG. 3), touchpad 355 (FIG. 3), one ofother input or control devices 116 (FIG. 1A), or an intensity-sensitivehome button (e.g., as shown in FIG. 2B or a home button with amechanical actuator as illustrated in FIG. 2C). In some embodiments,hardware input device 145 consists of an intensity-sensitive home button(e.g., as shown in FIG. 2B or a home button with a mechanical actuatoras illustrated in FIG. 2C), and not touch-sensitive display system 112(FIG. 1A), keyboard/mouse 350 (FIG. 3), or touchpad 355 (FIG. 3). Insome embodiments, in response to inputs from hardware input device 145,hardware input processing module 146 provides one or more triggersignals to haptic feedback module 133 to indicate that a user inputsatisfying predefined input criteria, such as an input corresponding toa “click” of a home button (e.g., a “down click” or an “up click”), hasbeen detected. In some embodiments, haptic feedback module 133 provideswaveforms that correspond to the “click” of a home button in response tothe input corresponding to the “click” of a home button, simulating ahaptic feedback of pressing a physical home button.

In some embodiments, the tactile output module includes haptic feedbackcontroller 161 (e.g., haptic feedback controller 161 in FIG. 1A), whichcontrols the generation of tactile outputs. In some embodiments, hapticfeedback controller 161 is coupled to a plurality of tactile outputgenerators, and selects one or more tactile output generators of theplurality of tactile output generators and sends waveforms to theselected one or more tactile output generators for generating tactileoutputs. In some embodiments, haptic feedback controller 161 coordinatestactile output requests that correspond to activation of hardware inputdevice 145 and tactile output requests that correspond to softwareevents (e.g., tactile output requests from haptic feedback module 133)and modifies one or more waveforms of the two or more waveforms toemphasize particular waveform(s) over the rest of the two or morewaveforms (e.g., by increasing a scale of the particular waveform(s)and/or decreasing a scale of the rest of the waveforms, such as toprioritize tactile outputs that correspond to activations of hardwareinput device 145 over tactile outputs that correspond to softwareevents).

In some embodiments, as shown in FIG. 1C, an output of haptic feedbackcontroller 161 is coupled to audio circuitry of device 100 (e.g., audiocircuitry 110, FIG. 1A), and provides audio signals to audio circuitryof device 100. In some embodiments, haptic feedback controller 161provides both waveforms used for generating tactile outputs and audiosignals used for providing audio outputs in conjunction with generationof the tactile outputs. In some embodiments, haptic feedback controller161 modifies audio signals and/or waveforms (used for generating tactileoutputs) so that the audio outputs and the tactile outputs aresynchronized (e.g., by delaying the audio signals and/or waveforms). Insome embodiments, haptic feedback controller 161 includes adigital-to-analog converter used for converting digital waveforms intoanalog signals, which are received by amplifier 163 and/or tactileoutput generator 167.

In some embodiments, the tactile output module includes amplifier 163.In some embodiments, amplifier 163 receives waveforms (e.g., from hapticfeedback controller 161) and amplifies the waveforms prior to sendingthe amplified waveforms to tactile output generator 167 (e.g., any oftactile output generators 167 (FIG. 1A) or 357 (FIG. 3)). For example,amplifier 163 amplifies the received waveforms to signal levels that arein accordance with physical specifications of tactile output generator167 (e.g., to a voltage and/or a current required by tactile outputgenerator 167 for generating tactile outputs so that the signals sent totactile output generator 167 produce tactile outputs that correspond tothe waveforms received from haptic feedback controller 161) and sendsthe amplified waveforms to tactile output generator 167. In response,tactile output generator 167 generates tactile outputs (e.g., byshifting a moveable mass back and forth in one or more dimensionsrelative to a neutral position of the moveable mass).

In some embodiments, the tactile output module includes sensor 169,which is coupled to tactile output generator 167. Sensor 169 detectsstates or state changes (e.g., mechanical position, physicaldisplacement, and/or movement) of tactile output generator 167 or one ormore components of tactile output generator 167 (e.g., one or moremoving parts, such as a membrane, used to generate tactile outputs). Insome embodiments, sensor 169 is a magnetic field sensor (e.g., a Halleffect sensor) or other displacement and/or movement sensor. In someembodiments, sensor 169 provides information (e.g., a position, adisplacement, and/or a movement of one or more parts in tactile outputgenerator 167) to haptic feedback controller 161 and, in accordance withthe information provided by sensor 169 about the state of tactile outputgenerator 167, haptic feedback controller 161 adjusts the waveformsoutput from haptic feedback controller 161 (e.g., waveforms sent totactile output generator 167, optionally via amplifier 163).

FIG. 2A illustrates a portable multifunction device 100 having a touchscreen (e.g., touch-sensitive display system 112, FIG. 1A) in accordancewith some embodiments. The touch screen optionally displays one or moregraphics within user interface (UI) 200. In these embodiments, as wellas others described below, a user is enabled to select one or more ofthe graphics by making a gesture on the graphics, for example, with oneor more fingers 202 (not drawn to scale in the figure) or one or morestyluses 203 (not drawn to scale in the figure). In some embodiments,selection of one or more graphics occurs when the user breaks contactwith the one or more graphics. In some embodiments, the gestureoptionally includes one or more taps, one or more swipes (from left toright, right to left, upward and/or downward) and/or a rolling of afinger (from right to left, left to right, upward and/or downward) thathas made contact with device 100. In some implementations orcircumstances, inadvertent contact with a graphic does not select thegraphic. For example, a swipe gesture that sweeps over an applicationicon optionally does not select the corresponding application when thegesture corresponding to selection is a tap.

Device 100 optionally also includes one or more physical buttons, suchas “home” or menu button 204. As described previously, menu button 204is, optionally, used to navigate to any application 136 in a set ofapplications that are, optionally executed on device 100. Alternatively,in some embodiments, the menu button is implemented as a soft key in aGUI displayed on the touch-screen display.

In some embodiments, device 100 includes the touch-screen display, menubutton 204 (sometimes called home button 204), push button 206 forpowering the device on/off and locking the device, volume adjustmentbutton(s) 208, Subscriber Identity Module (SIM) card slot 210, head setjack 212, and docking/charging external port 124. Push button 206 is,optionally, used to turn the power on/off on the device by depressingthe button and holding the button in the depressed state for apredefined time interval; to lock the device by depressing the buttonand releasing the button before the predefined time interval haselapsed; and/or to unlock the device or initiate an unlock process. Insome embodiments, device 100 also accepts verbal input for activation ordeactivation of some functions through microphone 113. Device 100 also,optionally, includes one or more contact intensity sensors 165 fordetecting intensity of contacts on touch-sensitive display system 112and/or one or more tactile output generators 167 for generating tactileoutputs for a user of device 100.

FIGS. 2B-2C show exploded views of a first input device suitable for usein the electronic devices shown in FIGS. 1A, 2A, 3, and/or 4A (e.g., ashome button 204). FIG. 2B shows an example of an intensity-sensitivehome button with capacitive sensors used to determine a range ofintensity values that correspond to force applied to theintensity-sensitive home button. FIG. 2C shows an example of a homebutton with a mechanical switch element. With reference to FIG. 2B, theinput device stack 220 includes a cover element 222 and a trim 224. Inthe illustrated embodiment, the trim 224 completely surrounds the sidesof the cover element 222 and the perimeter of the top surface of thecover element 222. Other embodiments are not limited to thisconfiguration. For example, in one embodiment the sides and/or topsurface of the cover element 222 can be partially surrounded by the trim224. Alternatively, the trim 224 can be omitted in other embodiments.

Both the cover element 222 and the trim 224 can be formed with anysuitable opaque, transparent, and/or translucent material. For example,the cover element 222 can be made of glass, plastic, or sapphire and thetrim 224 may be made of a metal or plastic. In some embodiments, one ormore additional layers (not shown) can be positioned below the coverelement 222. For example, an opaque ink layer can be disposed below thecover element 222 when the cover element 222 is made of a transparentmaterial. The opaque ink layer can conceal the other components in theinput device stack 220 so that the other components are not visiblethrough the transparent cover element 222.

A first circuit layer 226 can be disposed below the cover element 222.Any suitable circuit layer may be used. For example, the first circuitlayer 226 may be a circuit board or a flexible circuit. The firstcircuit layer 226 can include one or more circuits, signal lines, and/orintegrated circuits. In one embodiment, the first circuit layer 226includes a biometric sensor 228. Any suitable type of biometric sensorcan be used. For example, in one embodiment the biometric sensor is acapacitive fingerprint sensor that captures at least one fingerprintwhen a user's finger (or fingers) approaches and/or contacts the coverelement 222.

The first circuit layer 226 may be attached to the bottom surface of thecover element 222 with an adhesive layer 230. Any suitable adhesive canbe used for the adhesive layer. For example, a pressure sensitiveadhesive layer may be used as the adhesive layer 230.

A compliant layer 232 is disposed below the first circuit layer 226. Inone embodiment, the compliant layer 232 includes an opening 234 formedin the compliant layer 232. The opening 234 exposes the top surface ofthe first circuit layer 226 and/or the biometric sensor 228 when thedevice stack 220 is assembled. In the illustrated embodiment, thecompliant layer 232 is positioned around an interior perimeter of thetrim 224 and/or around a peripheral edge of the cover element 222.Although depicted in a circular shape, the compliant layer 232 can haveany given shape and/or dimensions, such as a square or oval. Thecompliant layer 232 is shown as a continuous compliant layer in FIGS. 2Band 2C, but other embodiments are not limited to this configuration. Insome embodiments, multiple discrete compliant layers may be used in thedevice stack 220. Additionally, in some embodiments, the compliant layer232 does not include the opening 234 and the compliant layer 232 extendsacross at least a portion of the input device stack 220. For example,the compliant layer 232 may extend across the bottom surface of thecover element 222, the bottom surface of the first circuit layer 226, ora portion of the bottom surface of the cover element 222 (e.g., aroundthe peripheral edge of the cover element) and the bottom surface of thefirst circuit layer 226.

A second circuit layer 238 is positioned below the first circuit layer226. A flexible circuit and a circuit board are examples of a circuitlayer that can be used in the second circuit layer 238. In someembodiments, the second circuit layer 238 can include a first circuitsection 240 and a second circuit section 242. The first and secondcircuit sections 240, 242 can be electrically connected one anotherother.

The first circuit section 240 can include a first set of one or moreintensity sensor components that are included in an intensity sensor. Insome embodiments, the first circuit section 240 can be electricallyconnected to the first circuit layer 226. For example, when the firstcircuit layer 226 includes a biometric sensor 228, the biometric sensor228 may be electrically connected to the first circuit section 240 ofthe second circuit layer 238.

The second circuit section 242 can include additional circuitry, such assignal lines, circuit components, integrated circuits, and the like. Inone embodiment, the second circuit section 242 may include aboard-to-board connector 244 to electrically connect the second circuitlayer 238 to other circuitry in the electronic device. For example, thesecond circuit layer 238 can be operably connected to a processingdevice using the board-to-board connector 244. Additionally oralternatively, the second circuit layer 238 may be operably connected tocircuitry that transmits signals (e.g., sense signals) received from theintensity sensor component(s) in the first circuit section 240 to aprocessing device. Additionally or alternatively, the second circuitlayer 238 may be operably connected to circuitry that provides signals(e.g., drive signals, a reference signal) to the one or more intensitysensor components in the first circuit section 240.

In some embodiments, the first circuit section 240 of the second circuitlayer 238 may be attached to the bottom surface of the first circuitlayer 226 using an adhesive layer 236. In a non-limiting example, a dieattach film may be used to attach the first circuit section 240 to thebottom surface of the first circuit layer 226.

A third circuit layer 246 is disposed below the first circuit section240 of the second circuit layer 238. The third circuit layer 246 mayinclude a second set of one or more intensity sensor components that areincluded in an intensity sensor. The third circuit layer 246 issupported by and/or attached to a support element 248. In oneembodiment, the support element 248 is attached to the trim 224 toproduce an enclosure for the other components in the device stack 220.The support element 248 may be attached to the trim 224 using anysuitable attachment mechanism.

The first set of one or more intensity sensor components in the firstcircuit section 240 and the second set of one or more intensity sensorcomponents in the third circuit layer 246 together form an intensitysensor. The intensity sensor can use any suitable intensity sensingtechnology. Example sensing technologies include, but are not limitedto, capacitive, piezoelectric, piezoresistive, ultrasonic, and magnetic.

In the examples shown in FIGS. 2B and 2C, the intensity sensor is acapacitive force sensor. With a capacitive force sensor, the first setof one or more intensity sensor components can include a first set ofone or more electrodes 250 and the second set of one or more forcesensor components a second set of one or more electrodes 252. Althoughshown in a square shape in FIGS. 2B and 2C each electrode in the firstand second sets of one or more electrodes 250, 252 can have any givenshape (e.g., rectangles, circles). Additionally, the one or moreelectrodes in the first and second sets 250, 252 may be arranged in anygiven pattern (e.g., one or more rows and one or more columns).

FIGS. 2B and 2C show two electrodes in the first and second sets of oneor more electrodes 250, 252. However, other embodiments are not limitedto this configuration. The first and second sets of one or moreelectrodes 250, 252 may each be a single electrode or multiple discreteelectrodes. For example, if the first set of one or more electrodes is asingle electrode, the second set of one or more electrodes comprisesmultiple discrete electrodes. In some embodiments, the second set of oneor more electrodes can be a single electrode and the first set includesmultiple discrete electrodes. Alternatively, both the first and secondsets of one or more electrodes may each include multiple discreteelectrodes.

Each electrode in the first set of one or more electrodes 250 is alignedin at least one direction (e.g., vertically) with a respective electrodein the second set of one or more electrodes 252 to produce one or morecapacitors. When a force input is applied to the cover element 222(e.g., the input surface of the input device), at least one electrode inthe first set 250 moves closer to a respective electrode in the secondset 252, which varies the capacitance of the capacitor(s). A capacitancesignal sensed from each capacitor represents a capacitance measurementof that capacitor. A processing device (not shown) is configured toreceive the capacitance signal(s) and correlate the capacitancesignal(s) to an amount of intensity applied to the cover element 222. Insome embodiments the force sensor can replace a switch element anddifferent intensity thresholds can be used to determine activationevents.

In some embodiments, such as the embodiment shown in FIG. 2C, a switchelement 254 can be positioned below the support element 248. The switchelement 254 registers a user input when a force input applied to thecover element 222 exceeds a given amount of force (e.g., a forcethreshold associated with closing the distance between the first circuitsection 240 and the third circuit layer 246). Any suitable switchelement can be used. For example, the switch element 254 may be a domeswitch that collapses when the force input applied to the cover element222 exceeds the force threshold. When collapsed, the dome switchcompletes a circuit that is detected by a processing device andrecognized as a user input (e.g., a selection of an icon, function, orapplication). In one embodiment, the dome switch is arranged such thatthe apex of the collapsible dome is proximate to the bottom surface ofthe support plate 248. In another embodiment, the base of thecollapsible dome can be proximate to the bottom surface of the supportplate 248.

FIG. 3 is a block diagram of an example multifunction device with adisplay and a touch-sensitive surface in accordance with someembodiments. Device 300 need not be portable. In some embodiments,device 300 is a laptop computer, a desktop computer, a tablet computer,a multimedia player device, a navigation device, an educational device(such as a child's learning toy), a gaming system, or a control device(e.g., a home or industrial controller). Device 300 typically includesone or more processing units (CPU's) 310, one or more network or othercommunications interfaces 360, memory 370, and one or more communicationbuses 320 for interconnecting these components. Communication buses 320optionally include circuitry (sometimes called a chipset) thatinterconnects and controls communications between system components.Device 300 includes input/output (I/O) interface 330 comprising display340, which is typically a touch-screen display. I/O interface 330 alsooptionally includes a keyboard and/or mouse (or other pointing device)350 and touchpad 355, tactile output generator 357 for generatingtactile outputs on device 300 (e.g., similar to tactile outputgenerator(s) 167 described above with reference to FIG. 1A), sensors 359(e.g., optical, acceleration, proximity, touch-sensitive, and/or contactintensity sensors similar to contact intensity sensor(s) 165 describedabove with reference to FIG. 1A). Memory 370 includes high-speed randomaccess memory, such as DRAM, SRAM, DDR RAM or other random access solidstate memory devices; and optionally includes non-volatile memory, suchas one or more magnetic disk storage devices, optical disk storagedevices, flash memory devices, or other non-volatile solid state storagedevices. Memory 370 optionally includes one or more storage devicesremotely located from CPU(s) 310. In some embodiments, memory 370 storesprograms, modules, and data structures analogous to the programs,modules, and data structures stored in memory 102 of portablemultifunction device 100 (FIG. 1A), or a subset thereof. Furthermore,memory 370 optionally stores additional programs, modules, and datastructures not present in memory 102 of portable multifunction device100. For example, memory 370 of device 300 optionally stores drawingmodule 380, presentation module 382, word processing module 384, websitecreation module 386, disk authoring module 388, and/or spreadsheetmodule 390, while memory 102 of portable multifunction device 100 (FIG.1A) optionally does not store these modules.

Each of the above identified elements in FIG. 3 are, optionally, storedin one or more of the previously mentioned memory devices. Each of theabove identified modules corresponds to a set of instructions forperforming a function described above. The above identified modules orprograms (i.e., sets of instructions) need not be implemented asseparate software programs, procedures or modules, and thus varioussubsets of these modules are, optionally, combined or otherwisere-arranged in various embodiments. In some embodiments, memory 370optionally stores a subset of the modules and data structures identifiedabove. Furthermore, memory 370 optionally stores additional modules anddata structures not described above.

Attention is now directed towards embodiments of user interfaces (“UI”)that are, optionally, implemented on portable multifunction device 100.

FIG. 4A illustrates an example user interface for a menu of applicationson portable multifunction device 100 in accordance with someembodiments. Similar user interfaces are, optionally, implemented ondevice 300. In some embodiments, user interface 400 includes thefollowing elements, or a subset or superset thereof:

-   -   Signal strength indicator(s) 402 for wireless communication(s),        such as cellular and Wi-Fi signals;    -   Time 404;    -   a Bluetooth indicator;    -   Battery status indicator 406;    -   Tray 408 with icons for frequently used applications, such as:        -   Icon 416 for telephone module 138, labeled “Phone,” which            optionally includes an indicator 414 of the number of missed            calls or voicemail messages;        -   Icon 418 for e-mail client module 140, labeled “Mail,” which            optionally includes an indicator 410 of the number of unread            e-mails;        -   Icon 420 for browser module 147, labeled “Browser;” and        -   Icon 422 for video and music player module 152, also            referred to as iPod (trademark of Apple Inc.) module 152,            labeled “iPod;” and    -   Icons for other applications, such as:        -   Icon 424 for IM module 141, labeled “Messages;”        -   Icon 426 for calendar module 148, labeled “Calendar;”        -   Icon 428 for image management module 144, labeled “Photos;”        -   Icon 430 for camera module 143, labeled “Camera;”        -   Icon 432 for online video module 155, labeled “Online            Video;”        -   Icon 434 for stocks widget 149-2, labeled “Stocks;”        -   Icon 436 for map module 154, labeled “Maps;”        -   Icon 438 for weather widget 149-1, labeled “Weather;”        -   Icon 440 for alarm clock widget 149-4, labeled “Clock;”        -   Icon 442 for workout support module 142, labeled “Workout            Support;”        -   Icon 444 for notes module 153, labeled “Notes;” and        -   Icon 446 for a settings application or module, which            provides access to settings for device 100 and its various            applications 136.

It should be noted that the icon labels illustrated in FIG. 4A aremerely examples. For example, in some embodiments, icon 422 for videoand music player module 152 is labeled “Music” or “Music Player.” Otherlabels are, optionally, used for various application icons. In someembodiments, a label for a respective application icon includes a nameof an application corresponding to the respective application icon. Insome embodiments, a label for a particular application icon is distinctfrom a name of an application corresponding to the particularapplication icon.

FIG. 4B illustrates an example user interface on a device (e.g., device300, FIG. 3) with a touch-sensitive surface 451 (e.g., a tablet ortouchpad 355, FIG. 3) that is separate from the display 450. Device 300also, optionally, includes one or more contact intensity sensors (e.g.,one or more of sensors 357) for detecting intensity of contacts ontouch-sensitive surface 451 and/or one or more tactile output generators359 for generating tactile outputs for a user of device 300.

Although many of the examples that follow will be given with referenceto inputs on touch screen display 112 (where the touch sensitive surfaceand the display are combined), in some embodiments, the device detectsinputs on a touch-sensitive surface that is separate from the display,as shown in FIG. 4B. In some embodiments, the touch-sensitive surface(e.g., 451 in FIG. 4B) has a primary axis (e.g., 452 in FIG. 4B) thatcorresponds to a primary axis (e.g., 453 in FIG. 4B) on the display(e.g., 450). In accordance with these embodiments, the device detectscontacts (e.g., 460 and 462 in FIG. 4B) with the touch-sensitive surface451 at locations that correspond to respective locations on the display(e.g., in FIG. 4B, 460 corresponds to 468 and 462 corresponds to 470).In this way, user inputs (e.g., contacts 460 and 462, and movementsthereof) detected by the device on the touch-sensitive surface (e.g.,451 in FIG. 4B) are used by the device to manipulate the user interfaceon the display (e.g., 450 in FIG. 4B) of the multifunction device whenthe touch-sensitive surface is separate from the display. It should beunderstood that similar methods are, optionally, used for other userinterfaces described herein.

Additionally, while the following examples are given primarily withreference to finger inputs (e.g., finger contacts, finger tap gestures,finger swipe gestures, etc.), it should be understood that, in someembodiments, one or more of the finger inputs are replaced with inputfrom another input device (e.g., a stylus input). Similarly, whenmultiple user inputs are simultaneously detected, it should beunderstood that multiple finger contacts, or a combination of fingercontacts and stylus input are used simultaneously.

As used in the specification and claims, the term “intensity” of acontact on a touch-sensitive surface refers to the force or pressure(force per unit area) of a contact (e.g., a finger contact or a styluscontact) on the touch-sensitive surface, or to a substitute (proxy) forthe force or pressure of a contact on the touch-sensitive surface. Theintensity of a contact has a range of values that includes at least fourdistinct values and more typically includes hundreds of distinct values(e.g., at least 256). Intensity of a contact is, optionally, determined(or measured) using various approaches and various sensors orcombinations of sensors. For example, one or more force sensorsunderneath or adjacent to the touch-sensitive surface are, optionally,used to measure force at various points on the touch-sensitive surface.In some implementations, force measurements from multiple force sensorsare combined (e.g., a weighted average or a sum) to determine anestimated force of a contact. Similarly, a pressure-sensitive tip of astylus is, optionally, used to determine a pressure of the stylus on thetouch-sensitive surface. Alternatively, the size of the contact areadetected on the touch-sensitive surface and/or changes thereto, thecapacitance of the touch-sensitive surface proximate to the contactand/or changes thereto, and/or the resistance of the touch-sensitivesurface proximate to the contact and/or changes thereto are, optionally,used as a substitute for the force or pressure of the contact on thetouch-sensitive surface. In some implementations, the substitutemeasurements for contact force or pressure are used directly todetermine whether an intensity threshold has been exceeded (e.g., theintensity threshold is described in units corresponding to thesubstitute measurements). In some implementations, the substitutemeasurements for contact force or pressure are converted to an estimatedforce or pressure and the estimated force or pressure is used todetermine whether an intensity threshold has been exceeded (e.g., theintensity threshold is a pressure threshold measured in units ofpressure). Using the intensity of a contact as an attribute of a userinput allows for user access to additional device functionality that mayotherwise not be readily accessible by the user on a reduced-size devicewith limited real estate for displaying affordances (e.g., on atouch-sensitive display) and/or receiving user input (e.g., via atouch-sensitive display, a touch-sensitive surface, or aphysical/mechanical control such as a knob or a button).

In some embodiments, contact/motion module 130 uses a set of one or moreintensity thresholds to determine whether an operation has beenperformed by a user (e.g., to determine whether a user has “clicked” onan icon). In some embodiments, at least a subset of the intensitythresholds are determined in accordance with software parameters (e.g.,the intensity thresholds are not determined by the activation thresholdsof particular physical actuators and can be adjusted without changingthe physical hardware of device 100). For example, a mouse “click”threshold of a trackpad or touch-screen display can be set to any of alarge range of predefined thresholds values without changing thetrackpad or touch-screen display hardware. Additionally, in someimplementations a user of the device is provided with software settingsfor adjusting one or more of the set of intensity thresholds (e.g., byadjusting individual intensity thresholds and/or by adjusting aplurality of intensity thresholds at once with a system-level click“intensity” parameter).

As used in the specification and claims, the term “characteristicintensity” of a contact refers to a characteristic of the contact basedon one or more intensities of the contact. In some embodiments, thecharacteristic intensity is based on multiple intensity samples. Thecharacteristic intensity is, optionally, based on a predefined number ofintensity samples, or a set of intensity samples collected during apredetermined time period (e.g., 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10seconds) relative to a predefined event (e.g., after detecting thecontact, prior to detecting liftoff of the contact, before or afterdetecting a start of movement of the contact, prior to detecting an endof the contact, before or after detecting an increase in intensity ofthe contact, and/or before or after detecting a decrease in intensity ofthe contact). A characteristic intensity of a contact is, optionallybased on one or more of: a maximum value of the intensities of thecontact, a mean value of the intensities of the contact, an averagevalue of the intensities of the contact, a top 10 percentile value ofthe intensities of the contact, a value at the half maximum of theintensities of the contact, a value at the 90 percent maximum of theintensities of the contact, a value produced by low-pass filtering theintensity of the contact over a predefined period or starting at apredefined time, or the like. In some embodiments, the duration of thecontact is used in determining the characteristic intensity (e.g., whenthe characteristic intensity is an average of the intensity of thecontact over time). In some embodiments, the characteristic intensity iscompared to a set of one or more intensity thresholds to determinewhether an operation has been performed by a user. For example, the setof one or more intensity thresholds may include a first intensitythreshold and a second intensity threshold. In this example, a contactwith a characteristic intensity that does not exceed the first thresholdresults in a first operation, a contact with a characteristic intensitythat exceeds the first intensity threshold and does not exceed thesecond intensity threshold results in a second operation, and a contactwith a characteristic intensity that exceeds the second intensitythreshold results in a third operation. In some embodiments, acomparison between the characteristic intensity and one or moreintensity thresholds is used to determine whether or not to perform oneor more operations (e.g., whether to perform a respective option orforgo performing the respective operation) rather than being used todetermine whether to perform a first operation or a second operation.

In some embodiments, a portion of a gesture is identified for purposesof determining a characteristic intensity. For example, atouch-sensitive surface may receive a continuous swipe contacttransitioning from a start location and reaching an end location (e.g.,a drag gesture), at which point the intensity of the contact increases.In this example, the characteristic intensity of the contact at the endlocation may be based on only a portion of the continuous swipe contact,and not the entire swipe contact (e.g., only the portion of the swipecontact at the end location). In some embodiments, a smoothing algorithmmay be applied to the intensities of the swipe contact prior todetermining the characteristic intensity of the contact. For example,the smoothing algorithm optionally includes one or more of: anunweighted sliding-average smoothing algorithm, a triangular smoothingalgorithm, a median filter smoothing algorithm, and/or an exponentialsmoothing algorithm. In some circumstances, these smoothing algorithmseliminate narrow spikes or dips in the intensities of the swipe contactfor purposes of determining a characteristic intensity.

The user interface figures described herein optionally include variousintensity diagrams that show the current intensity of the contact on thetouch-sensitive surface relative to one or more intensity thresholds(e.g., a contact detection intensity threshold IT₀, a light pressintensity threshold IT_(L), a deep press intensity threshold IT_(D)(e.g., that is at least initially higher than I_(L)), and/or one or moreother intensity thresholds (e.g., an intensity threshold I_(H) that islower than I_(L))). This intensity diagram is typically not part of thedisplayed user interface, but is provided to aid in the interpretationof the figures. In some embodiments, the light press intensity thresholdcorresponds to an intensity at which the device will perform operationstypically associated with clicking a button of a physical mouse or atrackpad. In some embodiments, the deep press intensity thresholdcorresponds to an intensity at which the device will perform operationsthat are different from operations typically associated with clicking abutton of a physical mouse or a trackpad. In some embodiments, when acontact is detected with a characteristic intensity below the lightpress intensity threshold (e.g., and above a nominal contact-detectionintensity threshold IT₀ below which the contact is no longer detected),the device will move a focus selector in accordance with movement of thecontact on the touch-sensitive surface without performing an operationassociated with the light press intensity threshold or the deep pressintensity threshold. Generally, unless otherwise stated, these intensitythresholds are consistent between different sets of user interfacefigures.

In some embodiments, the response of the device to inputs detected bythe device depends on criteria based on the contact intensity during theinput. For example, for some “light press” inputs, the intensity of acontact exceeding a first intensity threshold during the input triggersa first response. In some embodiments, the response of the device toinputs detected by the device depends on criteria that include both thecontact intensity during the input and time-based criteria. For example,for some “deep press” inputs, the intensity of a contact exceeding asecond intensity threshold during the input, greater than the firstintensity threshold for a light press, triggers a second response onlyif a delay time has elapsed between meeting the first intensitythreshold and meeting the second intensity threshold. This delay time istypically less than 200 ms (milliseconds) in duration (e.g., 40, 100, or120 ms, depending on the magnitude of the second intensity threshold,with the delay time increasing as the second intensity thresholdincreases). This delay time helps to avoid accidental recognition ofdeep press inputs. As another example, for some “deep press” inputs,there is a reduced-sensitivity time period that occurs after the time atwhich the first intensity threshold is met. During thereduced-sensitivity time period, the second intensity threshold isincreased. This temporary increase in the second intensity thresholdalso helps to avoid accidental deep press inputs. For other deep pressinputs, the response to detection of a deep press input does not dependon time-based criteria.

In some embodiments, one or more of the input intensity thresholdsand/or the corresponding outputs vary based on one or more factors, suchas user settings, contact motion, input timing, application running,rate at which the intensity is applied, number of concurrent inputs,user history, environmental factors (e.g., ambient noise), focusselector position, and the like. Example factors are described in U.S.patent application Ser. Nos. 14/399,606 and 14/624,296, which areincorporated by reference herein in their entireties.

For example, FIG. 4C illustrates a dynamic intensity threshold 480 thatchanges over time based in part on the intensity of touch input 476 overtime. Dynamic intensity threshold 480 is a sum of two components, firstcomponent 474 that decays over time after a predefined delay time p1from when touch input 476 is initially detected, and second component478 that trails the intensity of touch input 476 over time. The initialhigh intensity threshold of first component 474 reduces accidentaltriggering of a “deep press” response, while still allowing an immediate“deep press” response if touch input 476 provides sufficient intensity.Second component 478 reduces unintentional triggering of a “deep press”response by gradual intensity fluctuations of in a touch input. In someembodiments, when touch input 476 satisfies dynamic intensity threshold480 (e.g., at point 481 in FIG. 4C), the “deep press” response istriggered.

FIG. 4D illustrates another dynamic intensity threshold 486 (e.g.,intensity threshold I_(D)). FIG. 4D also illustrates two other intensitythresholds: a first intensity threshold I_(H) and a second intensitythreshold I_(L). In FIG. 4D, although touch input 484 satisfies thefirst intensity threshold I_(H) and the second intensity threshold I_(L)prior to time p2, no response is provided until delay time p2 haselapsed at time 482. Also in FIG. 4D, dynamic intensity threshold 486decays over time, with the decay starting at time 488 after a predefineddelay time p1 has elapsed from time 482 (when the response associatedwith the second intensity threshold I_(L) was triggered). This type ofdynamic intensity threshold reduces accidental triggering of a responseassociated with the dynamic intensity threshold I_(D) immediately after,or concurrently with, triggering a response associated with a lowerintensity threshold, such as the first intensity threshold I_(H) or thesecond intensity threshold I_(L).

FIG. 4E illustrate yet another dynamic intensity threshold 492 (e.g.,intensity threshold I_(D)). In FIG. 4E, a response associated with theintensity threshold I_(L) is triggered after the delay time p2 haselapsed from when touch input 490 is initially detected. Concurrently,dynamic intensity threshold 492 decays after the predefined delay timep1 has elapsed from when touch input 490 is initially detected. So adecrease in intensity of touch input 490 after triggering the responseassociated with the intensity threshold I_(L), followed by an increasein the intensity of touch input 490, without releasing touch input 490,can trigger a response associated with the intensity threshold I_(D)(e.g., at time 494) even when the intensity of touch input 490 is belowanother intensity threshold, for example, the intensity threshold I_(L).

An increase of characteristic intensity of the contact from an intensitybelow the light press intensity threshold IT_(L) to an intensity betweenthe light press intensity threshold IT_(L) and the deep press intensitythreshold IT_(D) is sometimes referred to as a “light press” input. Anincrease of characteristic intensity of the contact from an intensitybelow the deep press intensity threshold IT_(D) to an intensity abovethe deep press intensity threshold IT_(D) is sometimes referred to as a“deep press” input. An increase of characteristic intensity of thecontact from an intensity below the contact-detection intensitythreshold IT₀ to an intensity between the contact-detection intensitythreshold IT₀ and the light press intensity threshold IT_(L) issometimes referred to as detecting the contact on the touch-surface. Adecrease of characteristic intensity of the contact from an intensityabove the contact-detection intensity threshold IT₀ to an intensitybelow the contact-detection intensity threshold IT₀ is sometimesreferred to as detecting liftoff of the contact from the touch-surface.In some embodiments IT₀ is zero. In some embodiments, IT₀ is greaterthan zero. In some illustrations a shaded circle or oval is used torepresent intensity of a contact on the touch-sensitive surface. In someillustrations, a circle or oval without shading is used represent arespective contact on the touch-sensitive surface without specifying theintensity of the respective contact.

In some embodiments, the dynamic intensity thresholds illustrated inFIGS. 4C-4E are used for inputs on touch-sensitive display system 112.In some embodiments, different criteria (e.g., criteria described withrespect to FIGS. 5A-5II) are used for inputs on an intensity-sensitiveinput device, such as intensity-sensitive home buttons illustrated inFIGS. 2B and 2C. In some embodiments, the criteria described withrespect to FIGS. 5A-5II are used for all inputs instead of the dynamicintensity thresholds illustrated in FIGS. 4C-4E.

In some embodiments, described herein, one or more operations areperformed in response to detecting a gesture that includes a respectivepress input or in response to detecting the respective press inputperformed with a respective contact (or a plurality of contacts), wherethe respective press input is detected based at least in part ondetecting an increase in intensity of the contact (or plurality ofcontacts) above a press-input intensity threshold. In some embodiments,the respective operation is performed in response to detecting theincrease in intensity of the respective contact above the press-inputintensity threshold (e.g., the respective operation is performed on a“down stroke” of the respective press input). In some embodiments, thepress input includes an increase in intensity of the respective contactabove the press-input intensity threshold and a subsequent decrease inintensity of the contact below the press-input intensity threshold, andthe respective operation is performed in response to detecting thesubsequent decrease in intensity of the respective contact below thepress-input threshold (e.g., the respective operation is performed on an“up stroke” of the respective press input).

In some embodiments, the device employs intensity hysteresis to avoidaccidental inputs sometimes termed “jitter,” where the device defines orselects a hysteresis intensity threshold with a predefined relationshipto the press-input intensity threshold (e.g., the hysteresis intensitythreshold is X intensity units lower than the press-input intensitythreshold or the hysteresis intensity threshold is 75%, 90%, or somereasonable proportion of the press-input intensity threshold). Thus, insome embodiments, the press input includes an increase in intensity ofthe respective contact above the press-input intensity threshold and asubsequent decrease in intensity of the contact below the hysteresisintensity threshold that corresponds to the press-input intensitythreshold, and the respective operation is performed in response todetecting the subsequent decrease in intensity of the respective contactbelow the hysteresis intensity threshold (e.g., the respective operationis performed on an “up stroke” of the respective press input).Similarly, in some embodiments, the press input is detected only whenthe device detects an increase in intensity of the contact from anintensity at or below the hysteresis intensity threshold to an intensityat or above the press-input intensity threshold and, optionally, asubsequent decrease in intensity of the contact to an intensity at orbelow the hysteresis intensity, and the respective operation isperformed in response to detecting the press input (e.g., the increasein intensity of the contact or the decrease in intensity of the contact,depending on the circumstances).

For ease of explanation, the description of operations performed inresponse to a press input associated with a press-input intensitythreshold or in response to a gesture including the press input are,optionally, triggered in response to detecting: an increase in intensityof a contact above the press-input intensity threshold, an increase inintensity of a contact from an intensity below the hysteresis intensitythreshold to an intensity above the press-input intensity threshold, adecrease in intensity of the contact below the press-input intensitythreshold, or a decrease in intensity of the contact below thehysteresis intensity threshold corresponding to the press-inputintensity threshold. Additionally, in examples where an operation isdescribed as being performed in response to detecting a decrease inintensity of a contact below the press-input intensity threshold, theoperation is, optionally, performed in response to detecting a decreasein intensity of the contact below a hysteresis intensity thresholdcorresponding to, and lower than, the press-input intensity threshold.As described above, in some embodiments, the triggering of theseresponses also depends on time-based criteria being met (e.g., a delaytime has elapsed between a first intensity threshold being met and asecond intensity threshold being met).

Although only specific frequencies, amplitudes, and waveforms arerepresented in the sample tactile output patterns in FIG. 4F forillustrative purposes, tactile output patterns with other frequencies,amplitudes, and waveforms may be used for similar purposes. For example,waveforms that have between 0.5 to 4 cycles can be used. Otherfrequencies in the range of 60 Hz-400 Hz may be used as well.

User Interfaces and Associated Processes

Attention is now directed towards embodiments of user interfaces (“UI”)and associated processes that may be implemented on an electronicdevice, such as portable multifunction device 100 or device 300, with adisplay, a touch-sensitive surface, and one or more sensors to detectintensities of contacts with the touch-sensitive surface.

FIGS. 5A-5II illustrate example user interfaces and a variety of timeoutperiods and intensity thresholds used for detecting gestures. Some ofthe intensity thresholds and timeout periods are based on prior inputintensity (e.g., during input of a gesture, some intensity thresholdsare based on a characteristic intensity or representative intensity ofthe input during the same gesture), in accordance with some embodiments.The user interfaces in these figures are used to illustrate theprocesses described below, including the processes in FIGS. 6A-6F,7A-7E, and 8A-8C. For convenience of explanation, some of theembodiments will be discussed with reference to operations performed ona device with a touch-sensitive display system 112. In such embodiments,the focus selector is, optionally: a respective finger or styluscontact, a representative point corresponding to a finger or styluscontact (e.g., a centroid of a respective contact or a point associatedwith a respective contact), or a centroid of two or more contactsdetected on the touch-sensitive display system 112. However, analogousoperations are, optionally, performed on a device with a display 450 anda separate touch-sensitive surface 451 in response to detecting thecontacts on the touch-sensitive surface 451 while displaying the userinterfaces shown in the figures on the display 450, along with a focusselector.

FIGS. 5A-5N illustrate user interfaces, user input intensities andcorresponding intensity thresholds, for distinguishing between a numberof gestures, such as single click, double click and long press gestures.FIGS. 5A-5C illustrate a single click gesture on a home button 204 of anelectronic device that also includes a touch-sensitive display 112. Insome embodiments, home button 204 is separate from the display and,optionally, includes a set of one or more intensity sensors that areseparate from intensity sensors used to detect the intensity of inputson the display. In some embodiments, home button 204 is a virtual homebutton that is displayed on the display (e.g., with a set of one or moreintensity sensors that are separate from intensity sensors used todetect the intensity of inputs on the display or, optionally, usingintensity sensors integrated into the display to determine an intensityof an input with the virtual home button). Home button 204 is associatedwith an intensity sensor that is used to measure the intensity of useinputs on the home button. FIG. 5A shows the electronic device 100,display 112 and home button 204, and also shows a first down-clickintensity threshold I_(D). As shown in FIG. 5B, a touch input 505 onhome button 204 has an intensity that changes over time, including afirst increase in intensity 520, sometimes called a first down-click,reaching a peak intensity, I_(Peak), that is above a first down-clickintensity threshold I_(D) (e.g., because a user will typically overshootthe down-click intensity threshold when performing a down-clickoperation). As a result, the electronic device, or a module thereof(e.g., contact/motion module 130, FIG. 1A), detects that the increase inintensity meets down-click detection criteria, which requires that theintensity of the input increase above the first down-click intensitythreshold I_(D) in order for the down-click detection criteria to bemet. In some embodiments, when the down-click intensity threshold isreached the device provides feedback (e.g., audio and/or tactilefeedback) indicating that the down-click intensity threshold has beenreached.

As shown in FIG. 5C, after the first increase in intensity, theintensity of the touch input on home button 204 decreases, and theelectronic device detects a first decrease in intensity of the contact522, sometimes called a first up-click. In the example shown in FIGS.5B-5C, the first decrease in intensity of the input meets up-clickdetection criteria, which requires that the intensity of the inputdecrease below a first up-click intensity threshold I_(U) in order forthe up-click detection criteria to be met. As will be explained in moredetail below, the first up-click intensity threshold I_(U) is selectedbased on the intensity of the input during the first increase inintensity of the contact 520. As a result of the first decrease inintensity of the contact 522 meeting the up-click detection criteria,electronic device 100 provides first feedback. In the example shown inFIGS. 5B-5C, the first feedback is, or includes, switching fromdisplaying the user interface of a first application (e.g., a timerapplication) to displaying an application launch user interface. In someembodiments, the user interface transition shown in FIGS. 5B-5C isaccomplished by closing the application (e.g., a timer application), orceasing to display the user interface of the application, in response tosingle click gesture on home button 204, the performance of which isdetected when the first decrease in intensity of the input meets theup-click detection criteria. In some embodiments, when the up-clickintensity threshold is reached the device provides feedback (e.g., audioand/or tactile feedback) indicating that the up-click intensitythreshold has been reached. In some embodiments, the tactile output forthe up-click is different from the tactile output for the down-click(e.g., the tactile output for the up-click has a reduced amplituderelative to the down-click tactile output, such as the MicroTap (270 Hz)tactile output pattern with a gain of 0.5 as opposed to a MicroTap (270Hz) tactile output pattern with a gain of 1.0 for the down-click).

In contrast to the touch input-based gesture represented by FIGS. 5B-5C,a touch input-based gesture represented by FIGS. 5B and 5F correspondsto a touch input in which the first decrease in intensity of the inputdoes not meet the up-click detection criteria (e.g., does not decreasebelow the first up-click intensity threshold I_(U)), and as a result,the electronic device forgoes providing the first feedback (e.g., thevisual, audio and/or tactile feedback).

FIG. 5D-5E illustrate a second single click input. As shown in FIG. 5D,a second touch input 507 on home button 204, detected after theconclusion of the first touch input 505 (shown in FIG. 5C), has anintensity that changes over time, including an increase in intensity524, reaching a peak intensity, I_(Peak), that is above the firstdown-click intensity threshold I_(D). As a result, the electronicdevice, or a module thereof (e.g., contact/motion module 130, FIG. 1A),detects that the increase in intensity 524 meets the down-clickdetection criteria. In some embodiments, when the down-click intensitythreshold is reached the device provides feedback (e.g., audio and/ortactile feedback) indicating that the down-click intensity threshold hasbeen reached.

As shown in FIG. 5E, after the increase in intensity 524 of the secondinput 507, the intensity of the touch input on home button 204decreases, and the electronic device detects a decrease in intensity ofthe input 526. In the example shown in FIGS. 5D-5E, the decrease inintensity of the input meets up-click detection criteria, which requiresthat the intensity of the input decrease below the first up-clickintensity threshold I_(U) in order for the up-click detection criteriato be met. As a result of the decrease in intensity of the input meetingthe up-click detection criteria, electronic device 100 providesfeedback. In the example shown in FIGS. 5D-5E, the feedback is, orincludes, scrolling from one screen of icons in an application launchinguser interface (as shown in FIG. 5D), including a first set ofapplication launch icons, to another screen of icons in the applicationlaunch user interface, including a second set of application launchicons that include application launch icons not in the first set ofapplication launch icons. In some embodiments, when the up-clickintensity threshold is reached the device provides feedback (e.g., audioand/or tactile feedback) indicating that the up-click intensitythreshold has been reached.

In FIGS. 5C, 5D and 5E, indicator 510 indicates the point in time atwhich the down-click detection criteria is met, indicator 512 indicatesthe point in time at which the up-click detection criteria is met,indicator 514 indicates the point in time at which the down-clickdetection criteria is met for a second time, and indicator 516 indicatesthe point in time at which the up-click detection criteria is met for asecond time. In some embodiments, the electronic device or a modulethereof (e.g., an application-independent module, such as contact/motionmodule 130, FIG. 1A) generates an event (e.g., a down-click event) inresponse to the down-click detection criteria being met, or generates anevent (e.g., an up-click event) in response to the down-click detectioncriteria being met, or both. In some embodiments, the event (e.g., adown-click event or an up-click event) is delivered to one or moretargets, such as an application, or a web page for processing byinstructions in the web page, or to a web browser, which is a specialcase of an application, and/or a haptics feedback module, such as module133, FIG. 1A. For example, as shown in FIG. 5C, in some embodiments, atactile output 502 (e.g., a tactile output having the MicroTap (270 Hz)tactile output pattern, FIG. 4F) is generated in conjunction with theelectronic device detecting that the decrease in intensity of the inputmeets the up-click criteria, sometimes called detecting an up-click ordetecting a single click input. Furthermore, referring to FIGS. 5B, 5BB,5DD, 5FF, 5HH and 5II, in some embodiments, a tactile output 502 or 504is generated in conjunction with the electronic device detecting thatthe increase in intensity of the input meets the down-click criteria,sometimes called detecting a down-click or a long press, for example asdiscussed above with reference to FIGS. 5Z through 5II.

FIGS. 5G-5I illustrate two examples of double click inputs and theprovision of corresponding feedback. In particular, FIG. 5G shows atouch input that includes a first increase in intensity 532, reaching apeak intensity, I_(Peak), that is above a first down-click intensitythreshold I_(D). After reaching the peak intensity, I_(Peak), the touchinput includes a first decrease in intensity of the input 534, to a lowintensity, I_(Valley), that is below a first up-click intensitythreshold I_(U) in order for the up-click detection criteria to be met.As noted above, the first up-click intensity threshold I_(U) isdetermined based on the intensity of the input during the first increasein intensity of the contact 532. Subsequent to the first decrease inintensity 534, the touch input includes a second increase in intensity536 to an intensity above a second down-click intensity thresholdI_(D2). As will be explained in more detail below, the second down-clickintensity threshold I_(D2) is determined based on the intensity of theinput during the first decrease in intensity of the contact. Forexample, in some embodiments the second down-click intensity thresholdI_(D2) is determined based on the minimum or lowest intensity of theinput, I_(Valley), during the first decrease in intensity of thecontact.

In some embodiments, the input shown in FIG. 5G includes a firstincrease in intensity 532 that satisfies down-click detection criteria,as indicated by indicator 510, followed by a first decrease in intensity534 that satisfies up-click detection criteria, as indicated byindicator 512, followed by a second increase in intensity 536 thatsatisfies the down-click detection criteria as indicated by indicator518, where the down-click detection criteria includes a first down-clickintensity threshold for the first increase in intensity and includes asecond down-click intensity threshold for the second increase inintensity.

In some embodiments, represented by the transition from FIG. 5G to FIG.5I, when the electronic device 101 determines that the first increase inintensity 532, first decrease in intensity 534 and second increase inintensity 536 of the input shown in FIG. 5G has satisfied the down-clickdetection criteria, up-click detection criteria, and down-clickdetection criteria, respectively, the electronic device produces secondfeedback (e.g., visual, audio and/or tactile feedback) indicating thatthe second increase in intensity was recognized as part of adouble-click input, such as displaying a multitasking user interface asshown in FIG. 5H. In some embodiments, the second feedback is generated,or initiated, at or immediately following the time, indicated byindicator 518 in FIGS. 5G and 5I, at which the second increase inintensity satisfies the down-click detection criteria. It is noted thatin some embodiments, or in some circumstances, “one and a half clicks”(e.g., an input that includes, in sequence, first down-click, a firstup-click and a second down-click) is treated as double click, whichtriggers performance of an action, such as producing the secondfeedback. In some embodiments, the second feedback is or includestransitioning to a multitasking user interface, as shown in FIG. 5I. Insome embodiments, the second feedback is or includes generating atactile output 503, as shown in FIGS. 5H and 5I In some embodiments,tactile output 503 is a tactile output having the MiniTap (270 Hz)tactile output pattern, FIG. 4F).

In some embodiments, represented by the transition from FIG. 5G to FIG.5H, the input shown in FIG. 5G continues, with a second decrease inintensity 538 that falls below the up-click intensity threshold I_(U),and thereby meets the up-click detection criteria at the time indicatedby indicator 522. While FIG. 5H shows the same up-click intensitythreshold I_(U) for both the first and second decreases in intensity, insome embodiments, or in some circumstances, the up-click intensitythreshold for the second up-click (e.g., the second decrease inintensity) is different from the up-click intensity threshold for thefirst up-click (e.g., the first decrease in intensity). It is noted thatin some embodiments, or in some circumstances, “two full clicks” (e.g.,an input that includes, in sequence, first down-click 532, a firstup-click 534, a second down-click 536, and a second up-click 538) istreated as double click, which triggers performance of an action, suchas producing the second feedback (e.g., visual, audio and/or tactilefeedback). In some embodiments, the second feedback is transitioning toa multitasking user interface, as shown in FIG. 5H.

FIG. 5J shows, in graph form, how the ratio of the up-click intensitythreshold I_(D) (see FIGS. 5C, and 5E-5I) to an intensity value thatrepresents the intensity of the contact changes based on the intensityvalue that represents the intensity of the contact. As shown, the ratiohas a maximum value, a₂, when the input intensity is I_(D1), which isgreater (e.g., higher) than the first down-click intensity thresholdI_(D), and has a minimum value, a₁, when the input intensity is I_(D2),which is greater (e.g., higher) than I_(D1). The ratio has a valuebetween 0 and 1. In some embodiments, the ratio's maximum value, a₂, isequal to 0.73 and the ratio's minimum value, a₁, is equal to 0.6. In oneexample, when the low pass filtered current intensity of the contact (asdiscussed below with reference to FIG. 5K) is 500 g, the ratio is 0.6and when the low-pass filtered current intensity of the contact is 300g, the ratio is 0.73.

More generally, when the up-click intensity is based on a firstintensity value that represents the intensity of the contact, the ratioof the up-click intensity threshold to the first intensity value has afirst value; and when the up-click intensity is based on a secondintensity value that represents the intensity of the contact that isgreater than the first intensity value, the ratio of the up-clickintensity threshold to the second intensity value has a second valuethat is different from (e.g., lower than or higher than) the firstvalue.

In some embodiments, the ratio shown in FIG. 5J is multiplier that isapplied to (e.g., multiplied with) a characteristic intensity of theinput (e.g., a peak intensity of the input during the first increase inintensity, or an intensity value obtained by low-pass filtering theintensity during the first decrease in intensity) to determine theup-click intensity threshold I_(U).

FIG. 5K illustrates the determination of an up-click intensity thresholdI_(U(t)) 546 that dynamically changes as intensity of the input changesduring a first decrease in intensity 542, after the electronic devicehas detected a first increase in intensity 540. More specifically,during the first decrease in intensity 542, the intensity of the inputis low pass filtered, producing a first time varying value I_(LPup) 544.The first time varying value is then multiplied by either a fixed value,such as 0.7, or an intensity-based value, such as the ratio shown inFIG. 5J, to produce a time varying up-click intensity thresholdI_(U(t)), where the “(t)” symbol indicates that the value is timevarying. When the intensity of the input matches or decreases below thetime varying up-click intensity threshold I_(U(t)), as shown atindicator 548, the up-click detection criteria are satisfied.

FIG. 5L illustrates the determination of a down-click intensitythreshold I_(D(t)) 554 that dynamically changes as intensity of theinput changes during a second increase in intensity 550, after theelectronic device has detected a first increase in intensity 540 and afirst decrease in intensity 542. More specifically, during the secondincrease in intensity 550, the intensity of the input is low passfiltered, producing a second time varying value I_(LPdown) 552. In someembodiments, the low pass filtered intensity (I_(LPdown) 552) of thedetected intensity of the input during the second increase 550 inintensity of the contact is initially set, at the start of the secondincrease 550 in intensity of the contact, to the lowest intensity,I_(Valley), of the input during the first decrease 534 in intensity ofthe contact.

The second time varying value I_(LPdown) 552 is then multiplied byeither a fixed value, such as 1.4, (or, alternatively, divided by afixed value, such as 0.7) or an intensity-based value, such as the ratioshown in FIG. 5J, to produce a time varying up-click intensity thresholdI_(U(t)) 554, where the “(t)” symbol indicates that the value is timevarying. When the intensity of the input matches or increases above thetime varying down-click intensity threshold I_(D(t)) 554, as shown atindicator 556, the down-click detection criteria are met.

FIG. 5M illustrates the determination of an up-click intensity thresholdI_(U2(t)) 561 that dynamically changes as intensity of the input changesduring a second decrease in intensity 558 (sometimes called a secondup-click), after the electronic device has detected a second increase inintensity 550. More specifically, during the second decrease inintensity 558, the intensity of the input is low pass filtered,producing a second time varying value I_(LP2up) 560. The second timevarying value is then multiplied by either a fixed value, such as 0.7,or an intensity-based value, such as the ratio shown in FIG. 5J, toproduce a time varying up-click intensity threshold I_(U2(t)) 561, wherethe “(t)” symbol indicates that the value is time varying. When theintensity of the input matches or decreases below the time varyingup-click intensity threshold I_(U2(t)) 561, as shown at indicator 562,the up-click detection criteria are satisfied.

FIG. 5N is similar to FIG. 5M, with the exception that a minimumup-click intensity threshold I_(UM) is applied to the time varyingup-click intensity threshold I_(U2(t)) 561 of FIG. 5M, thereby producinga modified time varying up-click intensity threshold I_(U2M(t)) 563. Inother words, time varying up-click intensity threshold I_(U2M(t)) 563is, at each point in time, equal to the greater of time varying up-clickintensity threshold I_(U2(t)) 561 and the minimum up-click intensitythreshold I_(UM).

FIGS. 5O-5Y illustrate user interfaces, user input intensities andcorresponding intensity thresholds, for distinguishing between singleclick inputs or gestures and double click inputs or gestures, withaccelerated or expedited recognition of single click gestures (e.g.,based on a determination that a double click input is not going to beperformed). FIGS. 5O-5P illustrate a single click gesture, sometimescalled a single tap or single tap gesture, on a home button 204 of anelectronic device that also includes a touch-sensitive display 112. Homebutton 204 includes an intensity sensor for measuring the intensity ofuse inputs on the home button. FIG. 5O shows the electronic device 100,display 112 and home button 204, and also shows a first down-clickintensity threshold I_(D), a first up-click intensity threshold I_(U),and an early confirmation threshold I_(A), sometimes called theaccelerated confirmation threshold. As shown in FIG. 5O, a touch input523 on home button 204 has an intensity that changes over time,including a first increase in intensity 532, sometimes called a firstdown-click, reaching a peak intensity I_(Peak), that is above a firstdown-click intensity threshold I_(D). As a result, the electronicdevice, or a module thereof (e.g., contact/motion module 130, FIG. 1A),detects that the increase in intensity meets down-click detectioncriteria, as indicated by indicator 510 at time T₁, which requires thatthe intensity of the input increase above the first down-click intensitythreshold I_(D) in order for the down-click detection criteria to bemet.

After the first increase in intensity 532, the intensity of the touchinput 523 on home button 204 decreases, and the electronic devicedetects a first decrease in intensity of the contact 534, sometimescalled a first up-click. In the example shown in FIG. 5O, the firstdecrease in intensity of the input meets up-click detection criteria, asindicated by indicator 512 at time T_(2a), where the input meetsup-click detection criteria requires that the intensity of the inputdecrease below a first up-click intensity threshold I_(U) in order forthe up-click detection criteria to be met. If the first increase inintensity meets the down-click detection criteria and the first decreasein intensity meets the up-click detection criteria, the devicerecognizes at least a portion of the change in intensity of the input asfirst event, for example a click event, sometimes called a first click.

If the current context of the electronic device 100 allows both singleclick and double click inputs on home button 204, the performance of afirst operation associated with recognizing a single click is delayeduntil the device determines that the user is not inputting a doubleclick, or equivalently, that the first click is not the first part of adouble click. In some embodiments, the delay in performing the firstoperation is limited to a default delay time, such as 300 ms or 500 ms.However, if the electronic device can determine that the input satisfiedearly confirmation criteria, indicating that the input will not be adouble click, prior to expiration of the default delay time, theelectronic device can initiate performance of the first operation assoon as that determination is made.

In some embodiments, the early-confirmation criteria requires that theintensity of the input during the first decrease in intensity remainsbelow a confirmation intensity threshold, I_(A), for more than an earlyconfirmation time threshold. For example, in some embodiments, theconfirmation intensity threshold, I_(A), is 100 g, while the up-clickdetection threshold, I_(U), is 150 g, or 200 g, or more, and thus theconfirmation intensity threshold, I_(A), is lower than the up-clickdetection threshold.

In some embodiments, the confirmation intensity threshold, I_(A), isdetermined in accordance with a peak characteristic intensity of theinput, I_(Peak), detected during the detected increase in intensity ofthe input, prior to detecting the decrease in intensity of the input onthe input element. For example, in some embodiments, the up-clickdetection threshold, I_(U), is determined in accordance with the peakcharacteristic intensity of the input, I_(Peak), detected during thedetected increase in intensity of the input, prior to detecting thedecrease in intensity of the input on the input element, and theconfirmation intensity threshold, I_(A), is set in accordance with theup-click detection threshold, I_(U). In some such embodiments, theconfirmation intensity threshold, I_(A), is set to a level that is apredefined amount less (e.g., 50 g less) than the up-click detectionthreshold, I_(U), while in other such embodiments, the confirmationintensity threshold, I_(A), is set to a level that is a predefinedmultiple or percentage of (e.g., 0.90 times or 90% of) up-clickdetection threshold, I_(U). In some embodiments, the up-click thresholdis a dynamically determined up-click threshold as described above withreference to FIGS. 5A-5N.

Optionally, a tactile output 502 (e.g., a tactile output having theMicroTap (270 Hz) tactile output pattern, FIG. 4F) is generated inconjunction with the electronic device detecting the increase inintensity of the input meets the down-click criteria, sometimes calleddetecting or recognizing a down-click, or in conjunction with theelectronic device detecting the decrease in intensity of the input meetsthe up-click criteria, sometimes called detecting or recognizing anup-click or single click input. In some embodiments, the tactile outputfor the up-click is different from the tactile output for the down-click(e.g., the tactile output for the up-click has a reduced amplituderelative to a down-click tactile output, such as the MicroTap (270 Hz)tactile output pattern with a gain of 0.5 as opposed to a MicroTap (270Hz) tactile output pattern with a gain of 1.0 for the down-click).

In FIG. 5P, the first decrease 534 of the input shown in FIG. 5Ocontinues, passing the confirmation intensity threshold, I_(A), at timeT₂, as indicated by indicator 564. However, in this example, the inputends with liftoff of the finger or stylus at time T_(off), therebyending the gesture. In some embodiments, termination of the input byliftoff of the contact during the first decrease in intensity is treatedas confirmation that the gesture is a single click (or, equivalently,single tap). As a result, the electronic device performs the firstoperation, which in this example includes ending display of the userinterface of the application displayed prior to the single tap beingreceived, and thus the display 112 of the electronic device transitionsfrom displaying the user interface of a first application (e.g., a timeapplication) to displaying a set of application launch icons in anapplication launching user interface.

In FIG. 5Q, a touch input 525 detected (e.g., while an application userinterface similar to the user interface illustrated in FIG. 5O isdisplayed on touch-sensitive display 112) on home button 204 has anintensity that changes over time, including a first increase inintensity 532, sometimes called a first down-click, followed by a firstdecrease 534 in intensity. Indicator 512 indicates the point in time atwhich the up-click detection criteria are met, and indicator 564indicates the point in time at which the first decrease in intensityreaches the confirmation intensity threshold, I_(A). In the exampleshown in FIG. 5Q, after reaching the confirmation intensity threshold,I_(A), the input remains at an intensity below the confirmationintensity threshold, I_(A), starting at time T₂ for a period of timethat lasts at least the confirmation time threshold. A timeout periodcalled the “fast timeout period” starts at time T₂, when the intensityof the input decreases below the confirmation threshold, I_(A). When theduration of the fast timeout period reaches the confirmation timethreshold, at time T₃, the input is confirmed to be a single click, asindicated by indicator 565. As a result of the fast timeout periodreaching the confirmation time threshold, at time T₃ in the example inFIG. 5Q, the first operation (e.g., an operation associated withrecognizing a single click) is performed, or performance of the firstoperation is initiated. As noted above, in these examples, the firstoperation includes ending display of the user interface of theapplication displayed prior to the single tap being received (e.g., anapplication user interface illustrated in FIG. 5O), and thus the display112 of the electronic device transitions from displaying the userinterface of a first application (e.g., a time application) todisplaying a set of application launch icons in an application launchinguser interface.

FIG. 5R illustrates a continuation of the input shown in FIG. 5Q. Inthis example, a second single tap is received by the electronic device,subsequent to confirmation (e.g., at time T₃) that the initial input wasa single tap input and performance, or initiation of performance, of thefirst operation. In particular, the second single tap includes a secondincrease in intensity 566 that meets the down-click detection criteria,as indicated by indicator 567, and a second decrease in intensity 568that meets the up-click detection criteria, as indicated by indicator569. In this example, when the second single tap is detected, forexample when the second decrease in intensity 568 meets the up-clickdetection criteria, another operation is performed. In the example shownin FIGS. 5Q and 5R, that operation includes scrolling from one screen oficons in an application launching user interface (as shown in FIG. 5Q),including a first set of application launch icons, to another screen oficons in the application launch user interface (as shown in FIG. 5R),including a second set of application launch icons that includeapplication launch icons not in the first set of application launchicons.

It is noted that in the example shown in FIG. 5R, during the seconddecrease in intensity 568, the intensity also falls below theconfirmation intensity threshold, I_(A), as indicated by indicator 570.However, unless the electronic device is configured to detect, singleclick, double click and triple click inputs, the fact that the intensityhas fallen below the confirmation intensity threshold, I_(A), during thesecond decrease in intensity, may not trigger any additional actions bythe electronic device. For further considerations in detectingmulti-click gestures, see discussion of FIG. 5Y, below.

In FIG. 5S, a touch input 527 on home button 204 has an intensity thatchanges over time, including a first increase in intensity 532 and afirst decrease in intensity 534 that decreases below an up-clickintensity threshold I_(U), at time T_(2A), as indicated by indicator512. After the intensity decreases below up-click intensity thresholdI_(U), which can be considered to be a first event, the intensity oftouch input 527 remains at an intensity below the up-click intensitythreshold I_(U), but above below the confirmation intensity threshold,I_(A). Performance of the first operation, in response to the firstevent, is delayed until a default delay time period elapses, for exampleat time T₄, as indicated by indicator 571. As noted above, in theseexamples, the first operation includes ending display of the userinterface of the application displayed prior to the single tap beingreceived, and thus the display 112 of the electronic device transitionsfrom displaying the user interface of a first application (e.g., a timeapplication) to displaying a set of application launch icons in anapplication launching user interface.

In some embodiments, a delay time is monitored or measured from the timeat which a first down-click is detected, indicated as time T₁ in FIG.5S. In some other embodiments, the delay time is measured from the timeat which a first up-click is detected, indicated as time T_(2A) in FIG.5S. In some embodiments, measurement of the delay time stops and themeasured delay time is reset to zero, if the intensity of the inputincreases above the up-click intensity threshold I_(U) prior to thedelay time reaching the default delay time period. The default delaytime period is typically significantly longer than the earlyconfirmation time threshold. For example, in some embodiments thedefault delay time period is a value between 300 ms and 500 ms while theearly confirmation time threshold is a value between 100 ms and 200 ms.

As shown in FIGS. 5T, 5U and 5V, in some embodiments the earlyconfirmation criteria is satisfied when the cumulative amount of timethat the intensity of the input is below the early confirmationthreshold I_(A) reaches the early confirmation time threshold. In theexample shown in FIG. 5T, after the first increase in intensity 532 andfirst decrease in intensity 534, the intensity of the input decreasesbelow the up-click intensity threshold I_(U) and the early confirmationthreshold I_(A), at time T₂, as indicated by indicator 568, but thenincreases to a value above the early confirmation threshold I_(A) attime T₂₋₁ without satisfying the early confirmation criteria. As shownin FIG. 5U, the intensity of the input again decreases below the earlyconfirmation threshold I_(A), as indicated by indicator 572, at timeT₂₋₂, and then, as shown in FIG. 5V, remains below the earlyconfirmation threshold I_(A) until the cumulative amount of time thatthe input intensity has remained below the early confirmation thresholdI_(A) reaches the early confirmation time threshold, at time T₃₋₂, asindicated by indicator 573. Thus, at time T₃₋₂, the electronic deviceperforms or initiates performance of the first operation. As notedabove, in these examples, the first operation includes ending display ofthe user interface of the application displayed prior to the single tapbeing received, and thus the display 112 of the electronic devicetransitions from displaying the user interface of a first application(e.g., a time application) to displaying a set of application launchicons in an application launching user interface.

In FIG. 5W, a touch input 531 on home button 204 has an intensity thatchanges over time, including a first increase in intensity 532 and afirst decrease in intensity 534 that decreases below an up-clickintensity threshold I_(U), as indicated by indicator 512, and then belowearly confirmation threshold I_(A) at time T2, as indicated by indicator568. The input then continues with a second increase in intensity 536 toan intensity above the down-click intensity threshold I_(D) (oralternatively to an intensity above a second down-click intensitythreshold I_(D2) as shown in FIG. 5G), as indicated by indicator 574.The second increase in intensity 536 occurs prior to expiration of thedefault delay time period, and also prior to the intensity of the inputsatisfying the early confirmation criteria, and therefore the electronicdevice recognizes the second input event (e.g., a double click), and thefirst operation is not performed. In the example shown in FIG. 5W, thetime period from time T₂, when the intensity falls below the earlyconfirmation intensity threshold I_(A) to time T₂₋₁, when the intensityrises above the early confirmation threshold I_(A), is less than theearly confirmation time threshold.

Instead, in response to the second increase in intensity 536 to anintensity above the down-click intensity threshold I_(D), the electronicdevice transitions from displaying a previous user interface, such asthe user interface of an application (as shown in FIG. 5O), to adisplaying multitasking user interface, as shown in FIG. 5W.

Optionally, a tactile output 503, is generated in conjunction with theelectronic device recognizing the second input event (e.g., detectingthat the second increase in intensity 536 continues to an intensityabove the down-click intensity threshold prior to expiration of thedefault delay time period). In some embodiments, tactile output 503 is atactile output having the MiniTap (270 Hz) tactile output pattern, FIG.4F).

As shown in FIG. 5X, a touch input 533 on home button 204 has anintensity that changes over time, including a first increase inintensity 532 and a first decrease in intensity 534 that decreases belowan up-click intensity threshold I_(U), as indicated by indicator 512,and then below early confirmation threshold I_(A). In some embodiments,measurement of the delay time (used for delaying performance of a firstoperation corresponding to a single click input), starts from a time atwhich the intensity of the input decreases below an up-click intensitythreshold I_(U), and continues to be measured so long as the inputremains below the up-click intensity threshold I_(U). Alternatively, insome embodiments, measurement of the delay time starts from a time atwhich the intensity of the input increases above a down-click intensitythreshold I_(D), as shown in FIG. 5S, and once an up-click is detected,continues to be measured so long as the intensity of the input 533remains below the up-click intensity threshold I_(U).

In FIG. 5Y, the electronic device determines whether the intensity of atouch input 531 satisfies double click criteria or triple clickcriteria, and thus determines whether the input is a double click ortriple click. The touch input 531 (also shown in FIG. 5W) on home button204 has an intensity that changes over time, including a first increasein intensity 532 and a first decrease in intensity 534 that decreasesbelow an up-click intensity threshold I_(U), as indicated by indicator512, and then below early confirmation threshold I_(A) at time T2, asindicated by indicator 568. Input 531 then continues with a secondincrease in intensity 536 to an intensity above the down-click intensitythreshold I_(D) (or alternatively to an intensity above a seconddown-click intensity threshold I_(D2) as shown in FIG. 5G), as indicatedby indicator 574, and a second decrease in intensity 538 to an intensitybelow the up-click intensity threshold I_(U), as indicated by indicator522.

At this point the intensity of input 531 has followed the changesrequired for a double click. Subsequent to this point, four possiblecontinuations of input 531 are shown in FIG. 5Y. One possibility shownin FIG. 5Y is liftoff or discontinuation of the touch input 531, asindicated by indicator 576, which in some embodiments is sufficient tosatisfy double click detection criteria.

A second possibility shown in FIG. 5Y is that the intensity of touchinput 531 falls below and remains below the early confirmation thresholdI_(A) for at least an early confirmation time threshold, as indicated byindicator 577, and thereby satisfies the double click detectioncriteria. A third possibility shown in FIG. 5Y is that the intensity oftouch input 531 falls below and remains below the up-click intensitythreshold I_(U) (and above the early confirmation threshold I_(A)) forat least a default delay time threshold, as indicated by indicator 578,and thereby satisfies the double click detection criteria. Theelectronic device, in response to detecting that input 531 satisfies thedouble click detection criteria, performs or initiates performance of asecond operations, such as transitioning from a prior user interface toa multitasking user interface, as shown in FIG. 5Y.

A fourth possibility shown in FIG. 5Y is that, subsequent to the seconddecrease in intensity 538, and without touch input 531 satisfying thedouble click detection criteria, the intensity of touch input 531 has athird increase in intensity 580, during which the intensity increasesabove the down-click intensity threshold I_(D) (or alternativelyincreases above a respective down-click intensity threshold I_(D) thatis based on historic intensity of the touch input 531), as indicated byindicator 579, and thereby satisfies triple click detection criteria.The electronic device, in response to detecting that input 531 satisfiesthe triple click detection criteria, performs or initiates performanceof a third operation, such as transitioning from a prior user interfaceto a predefined user interface (e.g., a device settings interface) ortransitioning into an accessibility mode. When there is a triple clickoperation that is configured to be detected in response to a change inintensity of a contact on the home button, the device optionally imposesa delay in detecting the double click operation after detecting thesecond up-click to ensure that a triple click will not be detected. Thedelay in detecting the double click optionally operates in a similarfashion to the delay in detecting a single click described above withreference to FIGS. 5O-5Y.

FIGS. 5Z-5II depict touch inputs scenarios in which the length of timein which it takes to recognize a “long press” depends on the intensityof the touch input. For example, if the default time for recognizing along press input is, say, 500 ms, in accordance with some embodiments,the time for recognizing an input as a long press input decreases to 400ms or even 300 ms if the intensity of the input reaches predefined orcorresponding intensity levels.

FIG. 5Z shows a graph in which a rate, sometimes called a recognitionrate or timer rate, changes with the intensity of an input. Morespecifically, when the intensity is below a first down-click intensitythreshold I_(D), the rate is a default rate, r₀. When the intensity isbetween the first down-click intensity threshold I_(D) and a seconddown-click intensity threshold I_(D+), the rate changes from a firstrate, r₁ to a second rate r₂. In some embodiments, the rate changeslinearly from the first rate, r₁ to the second rate r₂ as the intensityof the input changes from I_(D) to I_(D+). However, in some embodiments,the rates changes from the first rate r₁ to the second rate r₂ in anumber of discrete steps, such as one or more steps, two or more steps,or three or more steps, as the intensity of the input changes from I_(D)to I_(D+).

In some embodiments, a timeout timer or counter is updated at periodicintervals in accordance with the current rate, as determined by thecurrent or most recently measured input intensity. For example, in someembodiments, the timeout timer or counter is updated as indicated bypseudocode representation in Table 1, of a timeout timer updatefunction.

TABLE 1   Timeout Timer Update Function timeout_value = start_value //e.g., 500 ms / // e.g., repeat the following steps every 20 millisecond// Repeat every N milliseconds until timeout_value ≤ 0 {   timeout_value = timeout_value - rate(current_intensity)    Ifcurrent_intensity = 0 {       return}    } Return timeout_event

In Table 1, “timeout_value” is the current value of the timer; startvalue is the default timeout period, such as 500 ms; current_intensityis the current intensity, or last measured intensity, of the input;rate(current_intensity) is the rate function, which maps the currentintensity to a rate, one example of which is shown in FIG. 5Z; andtimeout_event is an event that is delivered to a respective softwaremodule, such as contact/motion module 130, or any of applications 136,when the timer “times out” (i.e., when the timeout_value reaches orfalls below zero). In some embodiments, the timeout timer updatefunction is first called when the intensity of the input reaches apredefined intensity threshold, such as the first down-click intensitythreshold I_(D), and thus the timeout_value of the timeout timer isinitialized to the default timeout period when the intensity of theinput reaches the predefined intensity threshold.

The amount of time that the timeout timer or counter takes to expire,and then issue a timeout event, varies depending on the intensity of theinput. Also, in some embodiments, if the intensity of the inputsatisfies (e.g., reaches or falls below) an up-click intensitythreshold, the timeout function terminates, without issuing a timeoutevent. For example, in some embodiments, the intensity of the inputsatisfies the up-click intensity threshold if there is liftoff of thecontact. In some embodiments, the up-click intensity threshold is adynamic intensity threshold as described above with reference to FIGS.5A-5N.

In FIG. 5AA, electronic device 100 receives a touch input 535 on homebutton 204, the touch input having a measured or detected intensity, anddisplays a user interface on display 112. In this example, the displayeduser interface is the user interface of an application. FIG. 5AAincludes a first graph showing the intensity of an input 535 over aperiod of time, a second graph showing the value of the aforementionedtimeout timer over the same period of time, and a third graph showingthe timer rate during the same period of time, which is a function ofthe input intensity.

In FIG. 5AA, when the intensity of input 535 reaches, or rises above,the first down-click intensity threshold I_(D), at time T₁ as indicatedby indicator 582, the timeout timer is initialized to a starting value,such as the default timeout time for detecting a long press.Furthermore, the intensity of input 535 remains above the firstdown-click intensity threshold I_(D), and the value of the timeout timerdecreases at a rate determined by the intensity of input 535. Since, inthis example, the intensity of input 535 remains constant during thisperiod of time, the timeout timer decreases at a constant ratedetermined by the intensity of input 535.

In the example shown in FIG. 5BB, the intensity of input 543 remainsconstant from time T₁ through time T₂, as indicated by indicator 583,and at time T₂ the value of the timeout time reaches zero, indicatingthat the timeout period for detecting a long press has expired,sometimes called detecting a long press. Furthermore, as shown in FIG.5BB, once the period for detecting a long press has expired, electronicdevice 100 performs an operation (e.g., transitioning to a userassistance user interface) in accordance with a correspondingdetermination. In some embodiments, the aforementioned determinationincludes a determination that the intensity of the input did not satisfyup-click detection criteria prior to expiration of the timeout period.Furthermore, in some, the operation performed when a long press isdetected includes generating a tactile output 504. In some embodiments,tactile output 504 is a tactile output having the FullTap (125 Hz)tactile output pattern, FIG. 4F).

In contrast to FIG. 5BB, in FIG. 5II, electronic device 100 receives atouch input 543 on home button 204, the touch input having a measured ordetected intensity, and displays a user interface on display 112 (notshown in FIG. 5II, but can be seen in FIG. 5AA). FIG. 5II includes afirst graph showing the intensity of an input 543 over a period of time,a second graph showing the value of the aforementioned timeout timerover the same period of time, and a third graph showing the timer rateduring the same period of time, which is a function of the inputintensity.

In FIG. 5II, the intensity of input 543 remains below the firstdown-click intensity threshold I_(D), through the time period from timeT₁ to time T₆, as indicated by indicator 587. The timeout timer isinitialized to a starting value, such as the default timeout time fordetecting a long press. Furthermore, since the intensity of input 535remains below the first down-click intensity threshold I_(D), the valueof the timeout timer decreases at a default rate. Since, in thisexample, the intensity of input 535 remains below the first down-clickintensity threshold I_(D) during this period of time, the value of thetimeout timer decreases at a constant, default rate, and thus expiresafter a default time period, represented in FIG. 5II by the time from T₁to T₆.

Furthermore, as shown in FIG. 5II, once the default time period fordetecting a long press has expired, electronic device 100 performs anoperation (e.g., transitioning to a user assistance user interface) inaccordance with a corresponding determination. In some embodiments, theaforementioned determination includes a determination that the intensityof the input did not satisfy up-click detection criteria prior toexpiration of the default timeout period. Furthermore, in some, theoperation performed when a long press is detected includes generating atactile output 504. In some embodiments, tactile output 504 is a tactileoutput having the FullTap (125 Hz) tactile output pattern, FIG. 4F).

In FIG. 5CC, electronic device 100 receives a touch input 537 on homebutton 204, the touch input having a measured or detected intensity, anddisplays a user interface on display 112. In this example, the displayeduser interface is the user interface of an application. FIG. 5CC issimilar to FIG. 5AA, except that the intensity of touch input 537 ishigher, or has greater magnitude, than touch input 535 in FIG. 5AA. As aresult, the timer rate in the example shown in FIG. 5CC is higher orgreater than the timer rate in the example shown in FIG. 5AA, and thevalue of the timeout timer decreases at a faster rate in FIG. 5CC thanin FIG. 5AA.

In the example shown in FIG. 5DD, the intensity of input 537 remainsconstant from time T₁ through time T₃, which is before time T₂, and thevalue of the timeout timer reaches zero at time T₃, as indicated byindicator 584, indicating that the timeout period for detecting a longpress has expired. Thus, the timeout period (T₁ to T₃) for detecting along press is shorter in the example shown in FIGS. 5CC-5DD than thetimeout period (T₁ to T₂) in the example shown in FIGS. 5AA-5BB, becausethe intensity of the touch input in the example shown in FIGS. 5CC-5DDis higher than the example shown in FIGS. 5AA-5BB, and the correspondingtimer rate in the example shown in FIGS. 5CC-5DD is higher than theexample shown in FIGS. 5AA-5BB.

Furthermore, as shown in FIG. 5DD, once the period for detecting a longpress has expired, electronic device 100 performs an operation (e.g.,transitioning to a user assistance user interface) in accordance with acorresponding determination. In some embodiments, the aforementioneddetermination includes a determination that the intensity of the inputdid not satisfy up-click detection criteria prior to expiration of thetimeout period.

In FIG. 5EE, electronic device 100 receives a touch input 539 on homebutton 204, the touch input having a measured or detected intensity, anddisplays a user interface on display 112. In this example, the displayeduser interface is the user interface of an application. FIG. 5EE issimilar to FIGS. 5AA and 5CC, except that the intensity of touch input539 is higher, or has greater magnitude, than touch input 535 in FIG.5AA and touch input 537 in FIG. 5CC. As a result, the timer rate in theexample shown in FIG. 5EE is higher or greater than the timer rates inthe examples shown in FIGS. 5AA and 5CC, and the value of the timeouttimer decreases at a faster rate in FIG. 5EE than in FIGS. 5AA and 5CC.

In the example shown in FIG. 5FF, the intensity of input 539 remainsconstant from time T₁ through time T₄, which is before time T₃ and timeT₂, and the value of the timeout timer reaches zero at time T₄, asindicated by indicator 585, indicating that the timeout period fordetecting a long press has expired. Thus, the timeout period (T₁ to T₄)for detecting a long press is shorter in the example shown in FIGS.5EE-5FF than the timeout period (T₁ to T₂) in the example shown in FIGS.5AA-5BB and the timeout period (T₁ to T₃) in the example shown in FIGS.5CC-5DD, because the intensity of the touch input in the example shownin FIGS. 5EE-5FF is higher than the examples shown in FIGS. 5AA-5BB and5CC-5DD, and the corresponding timer rate in the example shown in FIGS.5EE-5FF is higher than the examples shown in FIGS. 5AA-5BB and 5CC-5DD.

Furthermore, as shown in FIG. 5FF, once the period for detecting a longpress has expired, electronic device 100 performs an operation (e.g.,transitioning to a user assistance user interface) in accordance with acorresponding determination. In some embodiments, the aforementioneddetermination includes a determination that the intensity of the inputdid not satisfy up-click detection criteria prior to expiration of thetimeout period.

In FIG. 5GG, electronic device 100 receives a touch input 541 on homebutton 204, the touch input having a measured or detected intensity, anddisplays a user interface on display 112. In this example, the displayeduser interface is the user interface of an application. FIG. 5GG issimilar to FIG. 5AA, and touch input 541 has the same or a similarintensity as touch input 535 in FIG. 5AA. As a result, the timer rate inthe example shown in FIG. 5GG is the same or similar to the timer ratein the example shown in FIG. 5AA, and the value of the timeout timerdecreases at the same or a similar rate in FIG. 5GG as in FIG. 5AA.

In the example shown in FIG. 5HH, the intensity of input 541 varies orchanges between time T₁ and time T₅. In this example, the intensity ofinput 541 at time T₅, indicated by indicator 586, is at or approximatelyat the intensity level associated with a maximum timer rate for thetimeout timer. Due to the changes in intensity between time T₁ and timeT₅, the timer rate changes between time T₁ and time T₅, in accordancewith the intensity of input 541, and thus the rate at which the value ofthe timeout timer decreases changes between time T₁ and time T₅. In thisexample, the rate at which the value of the timeout timer decreasesaccelerates when the intensity of the input increases at time T_(3b).Alternatively, had the intensity of the input decreased at time T_(3b),the rate at which the value of the timeout timer decreases would havedecelerated.

In this example, the value of the timeout timer reaches zero at time T₅,indicating that the timeout period for detecting a long press hasexpired. The timeout period in this example is the period for time T₁ totime T₅.

Furthermore, as shown in FIG. 5HH, once the period for detecting a longpress has expired, electronic device 100 performs an operation (e.g.,transitioning to a user assistance user interface) in accordance with acorresponding determination. In some embodiments, the aforementioneddetermination includes a determination that the intensity of the inputdid not satisfy up-click detection criteria prior to expiration of thetimeout period.

FIGS. 6A-6F are flow diagrams illustrating a method 600 of monitoring aninput on an intensity sensitive input element, and detecting an up-clickand/or a down-click in the monitored input using one or more intensitythresholds that are based on prior input intensity of the input. Method600 is performed at an electronic device (e.g., device 300, FIG. 3, orportable multifunction device 100, FIG. 1A) with a display, atouch-sensitive surface, and one or more sensors 165 to detect intensityof contacts with the touch-sensitive surface. In some embodiments, theelectronic device at which method 600 is performed includes, in additionto the touch-sensitive surface, a home button 204 that includes one ofsensors 165. In some embodiments, home button 204 is separate from thedisplay and, optionally, includes a set of one or more intensity sensorsthat are separate from intensity sensors used to detect the intensity ofinputs on the display. In some embodiments, home button 204 is a virtualhome button that is displayed on the display (e.g., with a set of one ormore intensity sensors that are separate from intensity sensors used todetect the intensity of inputs on the display or, optionally, usingintensity sensors integrated into the display to determine an intensityof an input with the virtual home button). In some embodiments, thedisplay is a touch-screen display and the touch-sensitive surface is onor integrated with the display. In some embodiments, the display isseparate from the touch-sensitive surface. Some operations in method 600are, optionally, combined and/or the order of some operations is,optionally, changed.

As described below, method 600 provides a way to accurately determineuser intent, with respect to whether a touch input includes an up-clickor down-click, by taking into account the intensity of the user's inputduring a portion of the input immediately preceding a decrease inintensity, or immediately preceding an increase in intensity. Method 600reduces “false positives,” such as inputs incorrectly detected asincluding an up-click or down-click, as well as “false negatives,” suchas inputs incorrectly detected as not including a respective up-click ordown-click, thereby creating a more efficient human-machine interface.For battery-operated electronic devices, taking into account thepriority intensity of a user's touch input enables a user to entergestures, such as one or more of a single click, double click and tripleclick gesture, faster and more efficiently, which conserves power andincreases the time between battery charges.

The device detects (602) a first increase in intensity of an input onthe input element that meets down-click detection criteria, and afterdetecting the first increase in intensity of the input on the inputelement, detects (608) a first decrease in intensity of the contact. Forexample, as shown in FIG. 5B, a touch input 505 on home button 204 hasan intensity that changes over time, including a first increase inintensity 520, sometimes called a first down-click, reaching a peakintensity, I_(Peak), that is above a first down-click intensitythreshold I_(D). As shown in FIG. 5C, after the first increase inintensity, the intensity of the touch input on home button 204decreases, and the electronic device detects a first decrease inintensity of the contact 522, sometimes called a first up-click.

In some embodiments, the input on the input element comprises (604) aninput on a touch-sensitive surface. In the example shown in FIGS. 5B and5C, the input on the input element is an input 505 on home button 204.Furthermore, in some embodiments, for the first increase in intensity,the down-click detection criteria require (606) that the intensity ofthe input increase above a first down-click intensity threshold, such asfirst down-click intensity threshold I_(D) shown in FIGS. 5B and 5C, inorder for the down-click detection criteria to be met. In someembodiments, and in the example shown in FIGS. 5B and 5C, the down-clickintensity threshold is a fixed, predefined value, and thus is neithertime-varying nor based on the intensity of the input immediately priorto the detecting the first increase in intensity of the input (602).

In response to detecting (610) the first decrease in intensity of theinput (e.g., decrease 552, FIG. 5C), method 600 includes determining(612) whether the first decrease in intensity of the input meetsup-click detection criteria, where (A) for the first decrease inintensity, the up-click detection criteria require that the intensity ofthe input decrease below a first up-click intensity threshold (e.g.,threshold I_(U), FIG. 5C) in order for the up-click detection criteriato be met, and (B) the first up-click intensity threshold (e.g.,threshold I_(U), FIG. 5C) is selected based on the intensity of theinput during the increase in intensity (e.g., first increase, 520, FIGS.5B-5C) of the contact that was detected prior to detecting the firstdecrease in intensity of the input. As explained in more detail below,the first up-click intensity threshold is based on either a peakintensity, I_(Peak) (see FIG. 5C), of the input prior to the firstdecrease 522, or another characteristic intensity or representativeintensity of the input. In some embodiments, the peak intensity, orcharacteristic intensity or representative intensity is multiplied by amultiplier, such as a value between 0.6 and 0.75, to determine the firstup-click intensity threshold.

In some embodiments, the first up-click intensity threshold is timevarying (632), in accordance with a low pass filtering of the detectedintensity of the input during the first decrease in intensity of thecontact. For example, FIG. 5K illustrates the determination of anup-click intensity threshold I_(U(t)) 546 that dynamically changes asintensity of the input changes during a first decrease in intensity 542.In the example discussed above with respect to FIG. 5K, during the firstdecrease in intensity 542, the intensity of the input is low passfiltered, producing a first time varying value I_(LPup) 544. The firsttime varying value is then multiplied by either a fixed value, such as0.7, or an intensity-based value, such as the ratio shown in FIG. 5J, toproduce a time varying up-click intensity threshold I_(U(t)), where the“(t)” symbol indicates that the value is time varying.

In some embodiments, as discussed above with reference to FIGS. 5J-5N, aratio of the up-click intensity threshold I_(U) to an intensity valuethat represents the intensity of the contact changes (642) based on theintensity value that represents the intensity of the contact (e.g., thelow-pass filtered peak intensity value of the input) such that when theup-click intensity is based on a first intensity value (e.g., intensityI_(D1), FIG. 5J) that represents the intensity of the contact, the ratioof the up-click intensity threshold to the first intensity value has afirst value (e.g., a₂, FIG. 5J); and when the up-click intensity isbased on a second intensity value (e.g., intensity I_(D2), FIG. 5J) thatrepresents the intensity of the contact that is greater than the firstintensity value, the ratio of the up-click intensity threshold to thesecond intensity value has a second value (e.g., a1) that is differentfrom (e.g., lower than or higher than) the first value (e.g., when thelow-pass filtered current intensity of the contact is 500 g, the ratiois 0.6 and when the low-pass filtered current intensity of the contactis 300 g, the ratio is 0.73). In some embodiments, changing the ratiobased on the intensity of the contact accounts for thermal drift thatincreases at higher intensity levels.

In some embodiments, as discussed above with reference to FIGS. 5J-5N,the magnitude of the up-click intensity threshold is set (644) bymultiplying the intensity value that represents the intensity of thecontact (e.g., the peak intensity of the contact before detecting thedecrease in the intensity of the contact, or the low-pass filteredcurrent intensity of the contact) by an adjustment value (e.g., a valuebetween 0 and 1) that is determined based at least in part on themagnitude of the intensity value that represents the intensity of thecontact (e.g., the peak intensity of the contact before detecting thedecrease in the intensity of the contact, or the low-pass filteredcurrent intensity of the contact).

In some embodiments, as discussed above with reference to FIGS. 5J-5N,the ratio of the up-click intensity threshold to an intensity value thatrepresents the intensity of the contact changes (646) in accordance witha maximum characteristic intensity of the input. For example, themultiplier changes from a predefined maximum value when the detectedintensity is below a first intensity value, e.g., 300 g, and to apredefined minimum value for when the detected intensity is above asecond intensity value, e.g., 500 g.

In some embodiments, as shown in FIG. 5J, the ratio of the up-clickintensity threshold to an intensity value that represents the intensityof the contact varies smoothly (648) from a predefined maximum value toa predefined minimum value as the intensity value that represents theintensity of the contact varies between the first intensity value andthe second intensity value, where the first intensity value is less thanthe second intensity value. In some embodiments, “varying smoothly”means that the ratio changes from the predefined maximum value to thepredefined minimum value in two or more steps, or three or more steps,as the intensity value that represents the intensity of the contactvaries between the first intensity value and the second intensity value.More generally, the ratio of the up-click intensity threshold to anintensity value that represents the intensity of the contact variesmonotonically from a predefined maximum value to a predefined minimumvalue as the intensity value that represents the intensity of thecontact varies between the first intensity value and the secondintensity value.

In some embodiments, the up-click intensity threshold is no less than apredefined minimum up-click intensity threshold (649). For example,while the aforementioned ratio or multiplier is applied to the intensityvalue that represents the intensity of the contact, the up-clickintensity threshold is set to the greater of the predefined minimumup-click intensity threshold (e.g., 130 g) and the up-click intensitythreshold determined using the ratio or multiplier. In equation form,the imposition of a predefined minimum up-click intensity threshold maybe represented as:I _(U)=max(IT _(min) ,I _(representative)*β)where IT_(min) is the predefined minimum up-click intensity threshold,I_(representative) is the intensity value that represents the intensityof the contact, and β is the aforementioned ratio or multiplier.

In some embodiments, examples of which are discussed above withreference to FIG. 5J-5N, the up-click intensity threshold is determinedin accordance with a multiplier (634), having a value greater than zeroand less than one, applied to a characteristic intensity of the input.The multiplier is, effectively, the aforementioned ratio, and ismultiplied by the intensity value that represents the intensity of thecontact. As discussed elsewhere in more detail, the intensity value thatrepresents the intensity of the contact is, in some embodiments, thepeak intensity before an up-click, or the lowest intensity immediatelypreceding a down-click. In some other embodiments, the intensity valuethat represents the intensity of the contact is a low-pass filteredintensity value for a respective portion of the input, as shown in FIG.5L for second down-click) and as shown in FIGS. 5K and 5N for a first orsecond up-click.

In some embodiments, the multiplier changes (636) in accordance with thecharacteristic intensity of the input. For example, in some embodiments,the multiplier smoothly varies (638) from a predefined maximum value toa predefined minimum value as the characteristic intensity of the inputvaries between a first intensity value and a second intensity value,where the first intensity value is less than the second intensity value.In some embodiments, “varying smoothly” means that the multiplierchanges from the predefined maximum value to the predefined minimumvalue in two or more steps, or three or more steps, as the intensityvalue that represents the intensity of the contact varies between thefirst intensity value and the second intensity value. For example, themultiplier changes from a predefined maximum value when the detectedintensity is below a first intensity value, e.g., 300 g, and to apredefined minimum value for when the detected intensity is above asecond intensity value, e.g., 500 g. More generally, the multipliervaries monotonically from a predefined maximum value to a predefinedminimum value as the intensity value that represents the intensity ofthe contact varies between the first intensity value and the secondintensity value.

In some embodiments, the up-click intensity threshold is the greater ofa predefined minimum up-click intensity threshold and a value determinedin accordance with the multiplier (e.g., a value greater than zero andless than one), applied to a characteristic intensity of the input(640). In equation form, the imposition of a predefined minimum up-clickintensity threshold may be represented as:I _(U)=max(IT _(min) ,I _(char)*β)where IT_(min) is the predefined minimum up-click intensity threshold,I_(char) is the characteristic intensity of the contact, and β is theaforementioned multiplier.

Furthermore, in accordance with a determination (616) that the firstdecrease in intensity of the input meets up-click detection criteria,the electronic device provides first feedback indicating that the firstdecrease in intensity of the input was recognized as an up-click, and inaccordance with a determination (616) that the decrease in intensity ofthe input does not meet the up-click detection criteria, the electronicdevice forgoes providing the first feedback. For example, as illustratedin FIG. 5C, when decrease 522 in intensity of the input meets up-clickdetection criteria (indicated by indicator 512), the device providestactile output 502 to indicate that decrease 522 in intensity of theinput was recognized as an up-click, and as illustrated in FIG. 5F, whendecrease 530 in intensity of the input does not meet the up-clickdetection criteria, the electronic device does not generate a tactileoutput (e.g., tactile output 502) that indicates recognition of adecrease (e.g., decrease 530) in intensity of the input as an up-click.

Having now considered detection of various aspects of a first click, wenow consider detection of various aspects of a second click. Inparticular, after determining that the first decrease in intensity meetsthe up-click detection criteria, the electronic device detects (614) asecond increase in intensity of the input. A variety of scenarios inwhich a second increase in intensity is detected are discussed abovewith reference to FIGS. 5D-5E, 5G-5I, and 5L-5N.

In response to detecting the second increase in intensity of the input(620), in accordance with a determination that the second increase inintensity of the input meets the down-click detection criteria, theelectronic device provides second feedback indicating that the secondincrease in intensity was recognized as part of a double-click input.For example, as discussed above with reference to FIG. 5G, a secondtactile output 503 is generated in conjunction with detecting theup-click of a second click of an input 511 on home button 204. Forexample, in some embodiments, the second (down-click) tactile output isgenerated with the one or more tactile output generators 167 (FIG. 1A)of the electronic device. In another example, providing the secondfeedback includes generating an audio output with one or more speakers(e.g., speaker 111, FIG. 1A), and/or displaying a change in thegraphical user interface displayed on the electronic device's display(e.g., display 112, FIGS. 5G, 5H) in accordance with a double clickoperation, such as displaying a multitasking user interface, as shown inFIG. 5H.

For the second increase in intensity, the down-click detection criteriarequire (622) that the intensity of the input increase above a seconddown-click intensity threshold (e.g., intensity threshold I_(D2), FIG.5G) in order for the down-click detection criteria to be met, and thesecond down-click intensity threshold for the second increase inintensity is selected (624) based on the intensity of the input duringthe first decrease in intensity of the contact. In the example shown inFIG. 5G, the second down-click intensity threshold for the secondincrease in intensity is selected based on the lowest intensity,I_(valley), of the input during the first decrease 534 in intensity ofthe contact.

In some embodiments, the second down-click intensity threshold is timevarying, and the second down-click intensity threshold is selected (626)based on a low pass filtering of the detected intensity of the inputduring the second increase in intensity of the contact that is detectedafter the first decrease in intensity of the input. For example, thedecrease in intensity of the input meets the up-click detectioncriteria. FIG. 5L shows an example of a time varying second down-clickintensity threshold, I_(U(t)) 554, that is selected or determined basedon a low pass filtering (I_(LPdown) 552) of the detected intensity ofthe input during the second increase 550 in intensity of the contact. Insome embodiments, the low pass filtered intensity (I_(LPdown) 552) ofthe detected intensity of the input during the second increase 550 inintensity of the contact is initially set, at the start of the secondincrease 550 in intensity of the contact, to the lowest intensity,I_(Valley), of the input during the first decrease 534 in intensity ofthe contact.

In response to detecting the second increase in intensity of the input(620), in in accordance with a determination (628) that the secondincrease in intensity of the input does not meet the down-clickdetection criteria, the electronic device forgoes providing the secondfeedback. For example, in FIG. 5G, if the input were to stop (e.g., ifthe contact were to lift off) prior to the intensity reaching the seconddown-click intensity threshold I_(D2), the second increase in intensityof the input would not meet the down-click detection criteria, and theelectronic device would forgo providing the second feedback.

In some embodiments, method 600 includes generating (650) a firsttactile output in conjunction with detecting that the increase inintensity of the input meets the down-click detection criteria. Forexample, as discussed above with reference to FIG. 5C, a first tactileoutput 502 is generated in conjunction with detecting a down-clickduring a decrease in intensity 522 of an input 505 on home button 204.

In some embodiments, method 600 includes generating (652) a secondtactile output in conjunction with detecting that the decrease inintensity of the input meets the up-click detection criteria. Forexample, as discussed above with reference to FIG. 5G, a second tactileoutput 503 is generated in conjunction with detecting the up-click of asecond click of an input 511 on home button 204.

In some embodiments, method 600 includes generating (654), in responseto detecting the increase in intensity of the input on the input elementthat meets the down-click detection criteria, a response that isdisplayed on the display of the electronic device. In one example, theresponse that is displayed is response to that visually distinguishes anobject in the user interface or a region of the user interface whoseposition corresponds to the input.

In some embodiments, providing the first feedback includes generating(656) a response that is displayed on the display of the electronicdevice. For example, in the example shown in FIGS. 5B-5C, the response,which may be called a first click or single click response, switchingfrom displaying the user interface of a first application (e.g., a timerapplication) to displaying an application launch user interface.

In some embodiments, method 600 includes generating (658) a same firsttactile output in conjunction with multiple instances of detecting thatthe increase in intensity of an input detected on the input elementmeets the down-click detection criteria, including instances in whichthe down-click detection criteria is associated with differentdown-click intensity thresholds. For example, even when a firstdown-click and a second down-click are detected at different intensitythresholds, the same tactile output (e.g., a tactile output having theMicroTap (270 Hz) tactile output pattern, FIG. 4F) is generated for boththe first down-click and the second down-click.

In some embodiments, method 600 includes generating (660) a same secondtactile output in conjunction with multiple instances of detecting thatthe decrease in intensity of an input detected on the input elementmeets the up-click detection criteria, including instances in which theup-click detection criteria is associated with different up-clickintensity thresholds. For example, even when a first up-click and asecond up-click are detected at different intensity thresholds, the sametactile output (e.g., a tactile output having the MiniTap (270 Hz)tactile output pattern, FIG. 4F) is generated for both the firstup-click and the second up-click. In some embodiments, the up-clicktactile output pattern has a lower gain than the down-click tactileoutput pattern (e.g., the up-click tactile output pattern is a reducedamplitude version of the down-click tactile output pattern).

In some embodiments, method 600 includes, after detecting the secondincrease in intensity of the input on the input element (e.g., increase536 in intensity of input 513, FIG. 5H), detecting (662) a seconddecrease in intensity of the contact (e.g., decrease 538 in intensity ofinput 513, FIG. 5H), and providing third feedback (e.g., performing adouble click operation, an example of which is described above withreference to FIG. 5H) indicating that the second decrease in intensitywas recognized as an up-click input in response to detecting the seconddecrease in intensity of the input. In such embodiments, for the seconddecrease in intensity, the up-click detection criteria require that theintensity of the input decrease below a second up-click intensitythreshold in order for the up-click detection criteria to be met; andthe second up-click intensity threshold is selected based on theintensity of the input during the second increase in intensity of thecontact. Furthermore, in accordance with a determination that the seconddecrease in intensity of the input does not meet the up-click detectioncriteria, the electronic device forgoes providing the third feedback(e.g., by forgoing performance of a double click operation).

In some embodiments, the third feedback is generated, or initiated, ator immediately following the time, indicated by indicator 522 in FIG.5H, at which the second decrease in intensity satisfies the up-clickdetection criteria. In some embodiments, the third feedback is orincludes transitioning to a multitasking user interface, as shown inFIG. 5H. In some embodiments, the third feedback is or includesgenerating a tactile output 503, as shown in FIG. 5H. In someembodiments, tactile output 503 is a tactile output having the MiniTap(270 Hz) tactile output pattern, FIG. 4F).

It should be understood that the particular order in which theoperations in FIGS. 6A-6F have been described is merely an example andis not intended to indicate that the described order is the only orderin which the operations could be performed. One of ordinary skill in theart would recognize various ways to reorder the operations describedherein. Additionally, it should be noted that details of other processesdescribed herein with respect to other methods described herein (e.g.,methods 700 and 800) are also applicable in an analogous manner tomethod 600 described above with respect to FIGS. 6A-6F. For example,method 600 of monitoring an input on an intensity sensitive inputelement, and detecting an up-click and/or a down-click in the monitoredinput using one or more intensity thresholds that are based on priorinput intensity of the input, described above with reference to FIGS.6A-6E, optionally has one or more of the characteristics of the methodof accelerated detection of single clicks described herein withreference to method 700, and/or the method of accelerated detection oflong press inputs described herein with reference to method 800. Forbrevity, these details are not repeated here.

In accordance with some embodiments, FIG. 9 shows a functional blockdiagram of an electronic device 900 configured in accordance with theprinciples of the various described embodiments. The functional blocksof the device are, optionally, implemented by hardware, software, or acombination of hardware and software to carry out the principles of thevarious described embodiments. It is understood by persons of skill inthe art that the functional blocks described in FIG. 9 are, optionally,combined or separated into sub-blocks to implement the principles of thevarious described embodiments. Therefore, the description hereinoptionally supports any possible combination or separation or furtherdefinition of the functional blocks described herein.

As shown in FIG. 9, an electronic device 900 includes a display unit 902(e.g., corresponding to display 112) configured to display a userinterface, an intensity sensitive input unit 904 (e.g., corresponding tohome button 204) configured to detect intensity of user inputs with theinput element, and a processing unit 910 coupled with the display unit902 and the intensity sensitive input unit 904. In some embodiments,electronic device 900 also includes touch-sensitive surface unit 906 forreceiving touch inputs on a surface, such as a display surface ofdisplay unit 902, and one or more tactile output units 908 forgenerating tactile outputs, also coupled to processing unit 910. In someembodiments, processing unit 910 includes one or more of the followingsub-units: intensity monitoring unit 912, up-click determining unit 914,down-click determining unit 916, and feedback unit 918. In someembodiments, feedback unit 918 includes response display unit 920 andtactile output unit 922.

Processing unit 910 is configured to: detect (e.g., using intensitymonitoring unit 912) a first increase in intensity of an input on theinput element that meets down-click detection criteria, and afterdetecting the first increase in intensity of the input on the inputelement, detect a first decrease in intensity of the contact. Inresponse to detecting the first decrease in intensity of the input,processing unit 910 determines (e.g., using up-click determining unit)whether the first decrease in intensity of the input meets up-clickdetection criteria, wherein for the first decrease in intensity, theup-click detection criteria require that the intensity of the inputdecrease below a first up-click intensity threshold in order for theup-click detection criteria to be met, and the first up-click intensitythreshold is selected based on the intensity of the input during theincrease in intensity of the contact that was detected prior todetecting the first decrease in intensity of the input.

Processing unit 910, in accordance with a determination that the firstdecrease in intensity of the input meets up-click detection criteria,provides first feedback (e.g., using feedback unit 918) indicating thatthe first decrease in intensity of the input was recognized as anup-click, and in accordance with a determination that the decrease inintensity of the input does not meet the up-click detection criteria,forgoes providing the first feedback.

In some embodiments, for the first increase in intensity, the down-clickdetection criteria require that the intensity of the input increaseabove a first down-click intensity threshold in order for the down-clickdetection criteria to be met. In some such embodiments, processing unit910 is further configured to, after determining that the first decreasein intensity meets the up-click detection criteria, detect (e.g., usingintensity monitoring unit 912) a second increase in intensity of theinput; and in response to detecting the second increase in intensity ofthe input, in accordance with a determination (e.g., using down-clickdetermining unit 916)) that the second increase in intensity of theinput meets the down-click detection criteria, provide second feedback(e.g., using feedback unit 918) indicating that the second increase inintensity was recognized as part of a double-click input. For the secondincrease in intensity, the down-click detection criteria require thatthe intensity of the input increase above a second down-click intensitythreshold in order for the down-click detection criteria to be met. Inthese embodiments, the second down-click intensity threshold for thesecond increase in intensity is selected based on the intensity of theinput during the first decrease in intensity of the contact, and inaccordance with a determination (e.g., using down-click determining unit916) that the second increase in intensity of the input does not meetthe down-click detection criteria, processing unit 910 forgoes providingthe second feedback.

In some embodiments, the second down-click intensity threshold is timevarying, and the second down-click intensity threshold is selected byprocessing unit 912 (e.g., using down-click determining unit 916) basedon a low pass filtering of the detected intensity of the input duringthe second increase in intensity of the contact that is detected afterthe first decrease in intensity of the input.

In some embodiments, for the first increase in intensity, the down-clickdetection criteria require that the intensity of the input increaseabove a first down-click intensity threshold in order for the down-clickdetection criteria to be met.

In some embodiments, the input on the intensity sensitive input unit 904comprises an input on a touch-sensitive surface.

In some embodiments, the first up-click intensity threshold is timevarying, in accordance with a low pass filtering of the detectedintensity of the input during the first decrease in intensity of thecontact.

In some embodiments, a ratio of the up-click intensity threshold to anintensity value that represents the intensity of the contact changesbased on the intensity value that represents the intensity of thecontact such that, when the up-click intensity is based on a firstintensity value that represents the intensity of the contact, the ratioof the up-click intensity threshold to the first intensity value has afirst value; and when the up-click intensity is based on a secondintensity value that represents the intensity of the contact that isgreater than the first intensity value, the ratio of the up-clickintensity threshold to the second intensity value has a second valuethat is different from the first value.

In some embodiments, the magnitude of the up-click intensity thresholdis set (e.g., by processing unit 910 or up-click determining unit 914)by multiplying the intensity value that represents the intensity of thecontact by an adjustment value that is determined based at least in parton the magnitude of the intensity value that represents the intensity ofthe contact. In some embodiments, the ratio of the up-click intensitythreshold to an intensity value that represents the intensity of thecontact changes in accordance with a maximum characteristic intensity ofthe input. In some embodiments, the ratio of the up-click intensitythreshold to an intensity value that represents the intensity of thecontact varies smoothly from a predefined maximum value to a predefinedminimum value as the intensity value that represents the intensity ofthe contact varies between the first intensity value and the secondintensity value, wherein the first intensity value is less than thesecond intensity value.

In some embodiments, the up-click intensity threshold is no less than apredefined minimum up-click intensity threshold.

In some embodiments, the up-click intensity threshold is determined(e.g., by processing unit 910 or up-click determining unit 914) inaccordance with a multiplier, having a value greater than zero and lessthan one, applied to a characteristic intensity of the input. In someembodiments, the multiplier changes in accordance with thecharacteristic intensity of the input. In some embodiments, themultiplier smoothly varies from a predefined maximum value to apredefined minimum value as the characteristic intensity of the inputvaries between a first intensity value and a second intensity value,wherein the first intensity value is less than the second intensityvalue.

In some embodiments, the up-click intensity threshold is the greater ofa predefined minimum up-click intensity threshold and a value determinedin accordance with a multiplier, having a value greater than zero andless than one, applied to a characteristic intensity of the input.

In some embodiments, processing unit 910 is further configured togenerate (e.g., using tactile output unit 922 of feedback unit 918) afirst tactile output in conjunction with detecting that the increase inintensity of the input meets the down-click detection criteria.

In some embodiments, processing unit 910 is further configured togenerate (e.g., using tactile output unit 922 of feedback unit 918) asecond tactile output in conjunction with detecting that the decrease inintensity of the input meets the up-click detection criteria.

In some embodiments, the processing unit is further configured togenerate, in response to detecting the increase in intensity of theinput on the input element that meets the down-click detection criteria,a response (e.g., using response display unit 920 of feedback unit 918)that is displayed by display unit 902 of the electronic device.

In some embodiments, providing the first feedback includes generating aresponse (e.g., using response display unit 920 of feedback unit 918)that is displayed by display unit 902 of the electronic device.

In some embodiments, the processing unit is further configured togenerate a same first tactile output in conjunction with multipleinstances of detecting that the increase in intensity of an inputdetected on the input element meets the down-click detection criteria,including instances in which the down-click detection criteria isassociated with different down-click intensity thresholds.

In some embodiments, the processing unit is further configured to, afterdetecting the second increase in intensity of the input on the inputelement, detect a second decrease in intensity of the contact; and, inresponse to detecting the second decrease in intensity of the input, inaccordance with a determination that the second decrease in intensity ofthe input meets the up-click detection criteria, provide third feedbackindicating that the second decrease in intensity was recognized as anup-click input. In such embodiments, for the second decrease inintensity, the up-click detection criteria require that the intensity ofthe input decrease below a second up-click intensity threshold in orderfor the up-click detection criteria to be met; and the second up-clickintensity threshold is selected based on the intensity of the inputduring the second increase in intensity of the contact. In suchembodiment, the processing unit is configured, in accordance with adetermination (e.g., by up-click determining unit 914) that the seconddecrease in intensity of the input does not meet the up-click detectioncriteria, to forgo providing the third feedback.

In some embodiments, the processing unit is further configured togenerate (e.g., using tactile output unit 922 of feedback unit 918) asame second tactile output in conjunction with multiple instances ofdetecting that the decrease in intensity of an input detected on theinput element meets the up-click detection criteria, including instancesin which the up-click detection criteria is associated with differentup-click intensity thresholds.

The operations in the information processing methods described abovewith reference to FIGS. 6A-6F are, optionally implemented by running oneor more functional modules in information processing apparatus such asgeneral purpose processors (e.g., as described above with respect toFIGS. 1A and 3) or application specific chips.

The operations described above with reference to FIGS. 6A-6F are,optionally, implemented by components depicted in FIGS. 1A-1B or FIG. 3.For example, detection operations 602, 608, 614, etc., and determineoperations 612, etc. are, optionally, implemented by contact/motionmodule 130, and feedback operations that provide tactile outputs areimplemented by haptic feedback module 133, while some other operationsare, optionally, implemented by event sorter 170, event recognizer 180,and event handler 190. Event monitor 171 in event sorter 170 detects acontact on touch-sensitive display 112, and event dispatcher module 174delivers the event information to application 136-1. A respective eventrecognizer 180 of application 136-1 compares the event information torespective event definitions 186, and determines whether a first contactat a first location on the touch-sensitive surface (or whether rotationof the device) corresponds to a predefined event or sub-event, such asselection of an object on a user interface, or rotation of the devicefrom one orientation to another. When a respective predefined event orsub-event is detected, event recognizer 180 activates an event handler190 associated with the detection of the event or sub-event. Eventhandler 190 optionally uses or calls data updater 176 or object updater177 to update the application internal state 192. In some embodiments,event handler 190 accesses a respective GUI updater 178 to update whatis displayed by the application. Similarly, it would be clear to aperson having ordinary skill in the art how other processes can beimplemented based on the components depicted in FIGS. 1A-1B.

FIGS. 7A-7E are flow diagrams illustrating a method 700 of monitoring aninput on an intensity sensitive input element, and detecting whether theinput is a single click or double click. Method 700 is performed at anelectronic device (e.g., device 300, FIG. 3, or portable multifunctiondevice 100, FIG. 1A) with a display, a touch-sensitive surface, and oneor more sensors 165 to detect intensity of contacts with thetouch-sensitive surface. In some embodiments, the electronic device atwhich method 700 is performed includes, in addition to thetouch-sensitive surface, a home button 204 that includes one of sensors165. In some embodiments, home button 204 is separate from the displayand, optionally, includes a set of one or more intensity sensors thatare separate from intensity sensors used to detect the intensity ofinputs on the display. In some embodiments, home button 204 is a virtualhome button that is displayed on the display (e.g., with a set of one ormore intensity sensors that are separate from intensity sensors used todetect the intensity of inputs on the display or, optionally, usingintensity sensors integrated into the display to determine an intensityof an input with the virtual home button). In some embodiments, thedisplay is a touch-screen display and the touch-sensitive surface is onor integrated with the display. In some embodiments, the display isseparate from the touch-sensitive surface. Some operations in method 700are, optionally, combined and/or the order of some operations is,optionally, changed.

As described below, method 700 provides a way to accurately determineuser intent, with respect to whether a touch input is a single click ordouble click, on an accelerated basis, by taking into account theintensity of the user's input during a portion of the input immediatelyfollowing recognition of a first event (e.g., that a first decrease inintensity of the input has fallen below an up-click intensitythreshold). Method 700 reduces latency, by recognizing single clickinputs faster than would otherwise be possible, while avoiding “falsepositives,” such as inputs incorrectly detected as a single click,thereby creating a more efficient human-machine interface. Forbattery-operated electronic devices, taking into account the priorityintensity of a user's touch input enables a user to enter gestures, suchas a single click or double click, faster and more efficiently, whichconserves power and increases the time between battery charges.

The device detects (702) a change in intensity of an input on an inputelement (e.g., input 523 on home button 204, FIG. 5O) that includesdetecting (702) an increase in intensity of the input (e.g., increase532, FIG. 5O) on the input element followed by a decrease in intensityof the input (e.g., decrease 534, FIG. 5O) on the input element. Theincrease in intensity followed by a decrease in intensity is sometimescalled a click, or first click or single click, depending on thecircumstances. In some embodiments, the input on the input element is orincludes an input on a touch-sensitive surface (704), such as surface ofhome button 204 (FIG. 5O) or a touch-sensitive surface of the electronicdevice's touch-sensitive display 112. In some embodiments, detecting achange in intensity of the input on the input element includescontinuously detecting (706) the input on the input element.

Method 700 further includes recognizing (708) at least a portion of thechange in intensity of the input as a first input event that isassociated with a first operation. As noted above, the first input eventis sometimes called a click or first click. An example is describedabove with reference to FIG. 5O.

After recognizing the first input event, method 700 includes delaying(710) performance of the first operation while monitoring subsequentchanges in intensity of the input for a second input event, wherein thedelay is limited by a default delay time period. Thus, performance ofthe first operation, such as changing the displayed user interface froman application user interface currently display to home screen orapplication launching user interface, is delayed or deferred while thedevice continues to monitor changes in intensity of the input. As notedabove with reference to FIG. 5P, in some embodiments, if there isliftoff of the contact, the monitoring of changes in the intensity ofthe input stops, and therefore performance of the first operation is notdeferred after liftoff of the is detected.

Method 700 further includes, after delaying performance of the firstoperation (712): in accordance with a determination that the secondinput event (e.g., has been recognized before the default delay timeperiod has elapsed, performing (714) a second operation and forgoingperformance of the first operation. As explained above with reference toFIG. 5W, this circumstance corresponds to detection of a double click,sometimes by detecting “one and half” clicks prior to expiration of thedefault delay time.

Method 700 further includes, after delaying performance of the firstoperation (712): in accordance with a determination thatearly-confirmation criteria for the first input event have been metbefore the default delay time period has elapsed without the secondinput event being recognized, performing (716) the first operationbefore the default delay time period has elapsed. As explained abovewith reference to FIGS. 5Q-5V, when the early-confirmation criteria aremet before the default delay time period has elapsed without the secondinput event being recognized, a single click is recognized and actedupon, by performing the first operation, on an accelerated basis (e.g.,before the default delay time period has elapsed). This reduces thelatency of the device in recognizing the user input as a single click.Various ways that the early-confirmation criteria for the first inputevent can be met are described in more detail below with respect tooperations 722-738, and are also explained in some detail above withrespect to FIGS. 5Q-5V.

Method 700 further includes, after delaying performance of the firstoperation (712): in accordance with a determination that the defaultdelay time period has elapsed without the early-confirmation criteriafor the first input event being met and without the second input eventbeing recognized, performing (718) the first operation once the defaultdelay time period has elapsed. As explained above with reference to FIG.5S, this circumstance occurs when the early-confirmation criteria arenot met before the default delay time period has elapsed without thesecond input event being recognized, and thus a single click isrecognized and acted upon, by performing the first operation, only afterthe default delay time period has elapsed. This is effectively thebackup or default, where detecting that the input is single click and isnot a double click takes the normal or default amount of time.

In some embodiments, the early-confirmation criteria (used in operation716, described above) for the first input event comprise criteria thatthe intensity of the input remains below a confirmation intensitythreshold for more than an early confirmation time threshold (720). Forexample, in FIG. 5Q, the early-confirmation criteria for the first inputevent comprise criteria that the intensity of the input remains belowconfirmation intensity threshold I_(A), which is lower than the up-clickintensity threshold I_(U), for more than an early confirmation timethreshold, which corresponds to the length of time between T₂ and T₃ inFIGS. 5Q and 5R. For comparison, the default delay time period is shownin FIG. 5S, as corresponding to the length of time between T₁(down-click detection) and T₄, or alternatively the length of timebetween T_(2A) (up-click detection) and T₄, as described in more detailabove with reference to FIG. 5S.

In some embodiments, the early confirmation time threshold is less thanhalf the default delay time period (722). For example, in someembodiments, the default delay time period is 500 ms, while the earlyconfirmation time threshold is 150 ms, or 200 ms, or a value between 150ms and 240 ms.

In some embodiments, the confirmation intensity threshold (e.g.,confirmation intensity threshold I_(A) in FIGS. 5O-5Y) is below anup-click intensity threshold (e.g., up-click intensity threshold I_(U)in FIGS. 5O-5Y) used for recognizing the second input event (724). Forexample, in some embodiments, the confirmation intensity threshold is150 g while the up-click intensity threshold is 200 g. In some otherembodiments, the confirmation intensity threshold is less than 150 gwhile the up-click intensity threshold is more than 150 g. Furthermore,in some such embodiments, the up-click intensity threshold is determined(726) in accordance with a characteristic intensity of the input duringthe detected increase in intensity of the input in which the inputreached a peak intensity prior to detecting the decrease in intensity ofthe input on the input element. Examples of up-click intensitythresholds that are determined in this manner, sometimes calledtime-varying intensity thresholds, are discussed above with reference toFIGS. 5K and 5M. FIGS. 5K and 5M show examples in which the up-clickintensity threshold is determined using a low pass filtered intensity ofthe contact.

In some embodiments, method 700 includes monitoring a duration of a fasttimeout period, starting when the intensity of the input decreases belowthe confirmation intensity threshold (728). This is shown, for examplein FIGS. 5Q, 5R and 5T-5V, with the monitoring of the fast timeoutperiod starting at time T₂, which is when the intensity of the inputdecreases below the confirmation intensity threshold I_(A) in thoseexamples.

In some embodiments, the duration of the fast timeout period is acumulative amount of time, after the fast timeout period starts, thatthe intensity of the input is below the confirmation intensity threshold(730). Measurement of the duration of the fast timeout period as acumulative amount of time, after the fast timeout period starts, thatthe intensity of the input is below the confirmation intensity thresholdis discussed in more detail above with reference to FIGS. 5T-5V.

In some embodiments, method 700 includes determining (732) theconfirmation intensity threshold (e.g., threshold I_(A) in FIGS. 5O-5Y)in accordance with a peak characteristic intensity of the input (e.g.,I_(Peak), FIG. 5O) detected during the detected increase in intensity ofthe input, prior to detecting the decrease in intensity of the input onthe input element. Further explanation and examples of how theconfirmation intensity threshold is determine are provided above withrespect to FIG. 5O.

In some embodiments, the confirmation intensity threshold is independentof a peak characteristic intensity of the input detected during thedetected increase in intensity of the input (734). For example, theconfirmation intensity threshold is set to a fixed intensity threshold,such as 100 g or 150 g, independent of the peak characteristic intensityof the input detected during the detected increase in intensity of theinput.

In some embodiments, method 700 includes monitoring (736) a duration ofthe default timeout period starting when the intensity of the inputincreases to a down-click intensity threshold. In some otherembodiments, method 700 includes monitoring (738) a duration of thedefault timeout period starting when the intensity of the inputdecreases to an up-click intensity threshold. Both of these options formonitoring the duration of the default timeout period are describedabove with reference to FIG. 5S. In FIG. 5S, time T₁ is the time atwhich the intensity of the input has increased to the down-clickintensity threshold I_(D), while time T_(2A) is the time at which theintensity of the input has decreased to the up-click intensity thresholdI_(U).

In some embodiments, method 700 includes, after delaying performance ofthe first operation, in accordance with a determination that a secondinput event has been recognized after the default delay time period haselapsed, performing (739) a third operation. For example, referring toFIG. 5S, after the default time period has expired, at time T₄, if asecond input event is recognized, it would be treated as a separateevent, such as a separate single click, and the third operation wouldcorrespond to the operation to be performed by the electronic device inresponse to a single client. A similar example is shown in FIG. 5R, inwhich the input includes a single click after the early-confirmationcriteria are satisfied at time T₃. In that example, the resulting thirdoperation is scrolling from one screen of icons in an applicationlaunching user interface, including a first set of application launchicons, to another screen of icons in the application launch userinterface.

In some embodiments, method 700 includes detecting (741) a sequence ofdistinct inputs on the input element, separated by periods during whichno input is detected on the input element, and repeating the recognizingand delaying with respect to a plurality of the inputs in the sequenceof distinct inputs. For example, as shown in FIG. 5E and described abovewith respect to FIG. 5E, the device may detect a touchdown of a firstinput (e.g., touch input 505, FIGS. 5B-5C) on the input element followedby liftoff of the first input and touchdown of a second input (e.g.,touch input 507, FIG. 5E) on the input element. In response, theelectronic device repeats the recognizing of the first input event, anddelays performance of the first operation, with respect to each input inthe sequence of distinct inputs.

In some embodiments, method 700 includes, after delaying performance ofthe first operation, in accordance with a determination that the firstinput event meets (740) long press input criteria before the secondinput event has been recognized, performing a third operation andforgoing performance of the first operation and the second operation.For example, the first input event may be a down-click, and the thirdoperation in this circumstance may be a long press operation, such asinvoking a virtual assistant or a dictation mode of operation.Recognition of long press inputs and responding to long press inputs arediscussed in more detail with respect to FIGS. 5Z to 5II and FIGS.8A-8C.

In some embodiments, method 700 includes generating (742) a firsttactile output (e.g., first tactile output 502, FIG. 5O) in conjunctionwith recognizing the first input event (e.g., recognizing a down-clickat time T₁, or recognizing an up-click at time T_(2a), FIG. 5O).

In some embodiments, method 700 includes generating (744) a secondtactile output in conjunction with recognizing the second input event,as described above with reference to FIG. 5W.

In some embodiments, the first operation is or includes (746) ceasing todisplay a user interface for an application (and, optionally returningto displaying a home screen or application launch screen for thedevice), for example as shown in the transition for FIGS. 5O to 5Q, andthe second operation comprises a multitasking operation (e.g., switchingbetween applications or displaying a user interface that providesoptions for switching between a plurality of different applications suchas concurrently open applications or recently used applications, asshown in FIG. 5W).

In some embodiments, the first operation is or includes (748) scrollingfrom one screen of icons in an application launching user interface(e.g., an application launching user interface including a first set ofapplication launch icons), to another screen of icons in the applicationlaunch user interface (e.g., including a second set of applicationlaunch icons that include application launch icons not in the first setof application launch icons), as shown in the transition from FIG. 5Q to5R, and the second operation comprises a multitasking operation (e.g.,switching between applications or displaying a user interface thatprovides options for switching between a plurality of differentapplications such as concurrently open applications or recently usedapplications, as shown in FIG. 5W).

In some embodiments, recognition of the first input event is based ondetection of a change in a characteristic intensity of an input withreference to a first intensity threshold (e.g., an up-click intensitythreshold); and recognition of the second input event is based ondetection of a change in a characteristic intensity of an input withreference to a second intensity threshold (e.g., a down-click intensitythreshold) that is different from the first intensity threshold. Forexample, with reference to FIG. 5Y, the up-click intensity thresholdI_(U), used for recognition of the first event, is distinct from (e.g.,lower than) the down-click intensity threshold I_(D), used forrecognition of the second event.

In some embodiments, method 700 includes, after recognizing the secondinput event (e.g., a second up-click event, corresponding to indicator522 in FIG. 5Y), delaying (760) performance of the second operationwhile monitoring subsequent changes in intensity of the input for athird input event (e.g., a third down-click, sometimes called a tripleclick event, corresponding to indicator 579), where the delay is limitedby a second default delay time period. Method 700 further includes,after delaying (762) performance of the second operation, in accordancewith a determination that the third input event has been recognized(e.g., corresponding to indicator 579, FIG. 5Y) before the seconddefault delay time period has elapsed, performing (764) a thirdoperation (e.g., a triple click operation) and forgoing performance ofthe second operation (e.g., a double click operation). Otherwise, afterdelaying (762) performance of the second operation, method 700 includes,in accordance with a determination that early-confirmation criteria forthe second input event have been met before the second default delaytime period has elapsed (e.g., as indicated by indictor 577, FIG. 5Y)without the third input event being recognized, performing (766) thesecond operation (e.g., the double click operation) before the seconddefault delay time period has elapsed. Further, after delaying (762)performance of the second operation, method 700 includes, in accordancewith a determination that the second default delay time period haselapsed without the early-confirmation criteria for the second inputevent being met (e.g., as indicated by indictor 578, FIG. 5Y) andwithout the third input event being recognized, performing (768) thesecond operation (e.g., the double click operation) once the seconddefault delay time period has elapsed. In some embodiments, the seconddefault delay time period is the same as the first default delay timeperiod. In some other embodiments, the second default delay time periodis longer or shorter than the first default delay time period.

In accordance with some embodiments, FIG. 10 shows a functional blockdiagram of an electronic device 1000 configured in accordance with theprinciples of the various described embodiments. The functional blocksof the device are, optionally, implemented by hardware, software, or acombination of hardware and software to carry out the principles of thevarious described embodiments. It is understood by persons of skill inthe art that the functional blocks described in FIG. 10 are, optionally,combined or separated into sub-blocks to implement the principles of thevarious described embodiments. Therefore, the description hereinoptionally supports any possible combination or separation or furtherdefinition of the functional blocks described herein.

As shown in FIG. 10, an electronic device 1000 includes a display unit1002 (e.g., corresponding to display 112) configured to display a userinterface, an intensity sensitive input unit 1004 (e.g., correspondingto home button 204) configured to detect intensity of user inputs withthe input element, and a processing unit 1010 coupled with the displayunit 1002 and the intensity sensitive input unit 1004. In someembodiments, electronic device 1000 also includes touch-sensitivesurface unit 1006 for receiving touch inputs on a surface, such as adisplay surface of display unit 1002, and one or more tactile outputunits 1008 for generating tactile outputs, also coupled to processingunit 1010. In some embodiments, processing unit 1010 includes one ormore of the following sub-units: intensity monitoring unit 1012,single-click determining unit 1014, double-click determining unit 1016,feedback unit 1018 and delay unit 1024. In some embodiments,single-click determining unit 1014 includes early confirmation unit1015. In some embodiments, feedback unit 1018 includes response displayunit 1020 and tactile output unit 1022.

Processing unit 1010 is configured to: detect (e.g., using intensitymonitoring unit 912) a change in intensity of an input on the intensitysensitive input unit that includes detecting an increase in intensity ofthe input on the intensity sensitive input unit followed by a decreasein intensity of the input on the intensity sensitive input unit;recognize (e.g., using single-click determining unit 1014) at least aportion of the change in intensity of the input as a first input eventthat is associated with a first operation; and delay performance of thefirst operation (e.g., using delay unit 1024), after recognizing thefirst input event, while monitoring subsequent changes in intensity ofthe input for a second input event, wherein the delay is limited by adefault delay time period.

Processing unit 1010 is further configured to, after delayingperformance of the first operation: in accordance with a determinationthat the second input event has been recognized (e.g., usingdouble-click determining unit 1016) before the default delay time periodhas elapsed, perform a second operation and forgoing performance of thefirst operation; in accordance with a determination thatearly-confirmation criteria for the first input event have been met(e.g., using early confirmation unit 1014) before the default delay timeperiod has elapsed without the second input event being recognized,perform the first operation before the default delay time period haselapsed; and in accordance with a determination that the default delaytime period has elapsed without the early-confirmation criteria for thefirst input event being met (e.g., using early confirmation unit 1014)and without the second input event being recognized (e.g., usingdouble-click determining unit), perform the first operation once thedefault delay time period has elapsed.

In some embodiments, the processing unit is further configured toperform a third operation, after delaying performance of the firstoperation, in accordance with a determination that a second input eventhas been recognized (e.g., using double-click determining unit 1016)after the default delay time period has elapsed.

In some embodiments, the input on the intensity sensitive input unit isor includes an input on a touch-sensitive surface. In some embodiments,detecting a change in intensity of the input on the intensity sensitiveinput unit includes continuously detecting the input on the intensitysensitive input unit.

In some embodiments, the processing unit is further configured to detecta sequence of distinct inputs on the intensity sensitive input unit,separated by periods during which no input is detected on the intensitysensitive input unit, and repeating the recognizing (e.g., using thesingle-click determining unit) and delaying (e.g., using delay unit1024) with respect to a plurality of the inputs in the sequence ofdistinct inputs.

In some embodiments, the early-confirmation criteria for the first inputevent are or include criteria that the intensity of the input remainsbelow a confirmation intensity threshold for more than an earlyconfirmation time threshold. In some embodiments, the early confirmationtime threshold is less than half the default delay time period. In someembodiments, the confirmation intensity threshold is below an up-clickintensity threshold used for recognizing the second input event.

In some embodiments, the up-click intensity threshold is determined(e.g., using single-click determining unit 1014) in accordance with acharacteristic intensity of the input during the detected increase inintensity of the input in which the input reached a peak intensity priorto detecting the decrease in intensity of the input on the intensitysensitive input unit.

In some embodiments, the processing unit is further configured tomonitor a duration of a fast timeout period (e.g., using earlyconfirmation unit 1015) starting when the intensity of the inputdecreases below the confirmation intensity threshold. In someembodiments, the duration of the fast timeout period is a cumulativeamount of time, after the fast timeout period starts, that the intensityof the input is below the confirmation intensity threshold.

In some embodiments, the processing unit is further configured todetermine the confirmation intensity threshold (e.g., using single-clickdetermining unit 1014 or early confirmation unit 1015) in accordancewith a peak characteristic intensity of the input detected during thedetected increase in intensity of the input, prior to detecting thedecrease in intensity of the input on the intensity sensitive inputunit. In some other embodiments, the confirmation intensity threshold isindependent of a peak characteristic intensity of the input detectedduring the detected increase in intensity of the input.

In some embodiments, the processing unit is further configured tomonitor a duration of the default timeout period (e.g., usingsingle-click determining unit 1014) starting when the intensity of theinput increases to a down-click intensity threshold. In some otherembodiments, the processing unit is further configured to monitor aduration of the default timeout period starting when the intensity ofthe input decreases to an up-click intensity threshold.

In some embodiments, the processing unit is further configured togenerate a first tactile output (e.g., using tactile output unit 1022)in conjunction with recognizing the first input event. In someembodiments, the processing unit is further configured to generate asecond tactile output (e.g., using tactile output unit 1022) inconjunction with recognizing the second input event.

In some embodiments, the processing unit is further configured to, afterrecognizing the second input event (e.g., using double-click determiningunit), delay performance of the second operation (e.g., using delay unit1024) while monitoring subsequent changes in intensity of the input fora third input event, where the delay is limited by a second defaultdelay time period. The processing unit is further configured to, afterdelaying performance of the second operation, in accordance with adetermination that the third input event has been recognized before thesecond default delay time period has elapsed, perform a third operationand forgoing performance of the second operation. The processing unit isalso configured to, in accordance with a determination thatearly-confirmation criteria for the second input event have been metbefore the second default delay time period has elapsed without thethird input event being recognized, perform the second operation beforethe second default delay time period has elapsed. Further, theprocessing unit is configured to, in accordance with a determinationthat the second default delay time period has elapsed without theearly-confirmation criteria for the second input event being met andwithout the third input event being recognized, perform the secondoperation once the second default delay time period has elapsed.

In some embodiments, the first operation comprises ceasing to display auser interface for an application, and the second operation comprises amultitasking operation. In some other embodiments, the first operationcomprises scrolling from one screen of icons in an application launchinguser interface, to another screen of icons in the application launchuser interface, and the second operation comprises a multitaskingoperation.

In some embodiments, the processing unit is further configured to, afterdelaying performance of the first operation (e.g., using delay unit1024), perform a third operation and forgo performance of the firstoperation and the second operation in accordance with a determinationthat the first input event meets long press input criteria before thesecond input event has been recognized.

In some embodiments, recognition of the first input event is based ondetection of a change in a characteristic intensity of an input withreference to a first intensity threshold; and recognition of the secondinput event is based on detection of a change in a characteristicintensity of an input with reference to a second intensity thresholdthat is different from the first intensity threshold.

The operations in the information processing methods described abovewith reference to FIGS. 7A-7E are, optionally implemented by running oneor more functional modules in information processing apparatus such asgeneral purpose processors (e.g., as described above with respect toFIGS. 1A and 3) or application specific chips.

The operations described above with reference to FIGS. 7A-7E are,optionally, implemented by components depicted in FIGS. 1A-1B or FIG. 3.For example, detection operations 702, 706, etc., and recognize anddetermine operations 708, 714, 716, 718, etc. are, optionally,implemented by contact/motion module 130, and feedback operations thatprovide tactile outputs are implemented by haptic feedback module 133,while some other operations are, optionally, implemented by event sorter170, event recognizer 180, and event handler 190. Event monitor 171 inevent sorter 170 detects a contact on touch-sensitive display 112, andevent dispatcher module 174 delivers the event information toapplication 136-1. A respective event recognizer 180 of application136-1 compares the event information to respective event definitions186, and determines whether a first contact at a first location on thetouch-sensitive surface (or whether rotation of the device) correspondsto a predefined event or sub-event, such as selection of an object on auser interface, or rotation of the device from one orientation toanother. When a respective predefined event or sub-event is detected,event recognizer 180 activates an event handler 190 associated with thedetection of the event or sub-event. Event handler 190 optionally usesor calls data updater 176 or object updater 177 to update theapplication internal state 192. In some embodiments, event handler 190accesses a respective GUI updater 178 to update what is displayed by theapplication. Similarly, it would be clear to a person having ordinaryskill in the art how other processes can be implemented based on thecomponents depicted in FIGS. 1A-1B.

FIGS. 8A-8C are flow diagrams illustrating a method 800 of monitoring aninput on an intensity sensitive input element, detecting a long press onan accelerated basis, and if a long press is detected, performing acorresponding operation. Method 800 is performed at an electronic device(e.g., device 300, FIG. 3, or portable multifunction device 100, FIG.1A) with a display, a touch-sensitive surface, and one or more sensors165 to detect intensity of contacts with the touch-sensitive surface. Insome embodiments, the electronic device at which method 800 is performedincludes, in addition to the touch-sensitive surface, a home button 204that includes one of sensors 165. In some embodiments, home button 204is separate from the display and, optionally, includes a set of one ormore intensity sensors that are separate from intensity sensors used todetect the intensity of inputs on the display. In some embodiments, homebutton 204 is a virtual home button that is displayed on the display(e.g., with a set of one or more intensity sensors that are separatefrom intensity sensors used to detect the intensity of inputs on thedisplay or, optionally, using intensity sensors integrated into thedisplay to determine an intensity of an input with the virtual homebutton). In some embodiments, the display is a touch-screen display andthe touch-sensitive surface is on or integrated with the display. Insome embodiments, the display is separate from the touch-sensitivesurface. Some operations in method 800 are, optionally, combined and/orthe order of some operations is, optionally, changed.

As described below, method 800 provides a way to accurately determineuser intent, with respect to whether a touch input is a long press, onan accelerated basis, by taking into account the intensity of the user'sinput. Method 800 reduces latency, by recognizing long press inputsfaster than would otherwise be possible, while avoiding “falsepositives,” such as inputs incorrectly detected as a long press, therebycreating a more efficient human-machine interface. For battery-operatedelectronic devices, taking into account the intensity of a user's touchinput enables a user to enter gestures, such as a long press, faster andmore efficiently, which conserves power and increases the time betweenbattery charges.

The device detects (802) an input sequence that includes an increase inintensity of an input that corresponds to a first input event (e.g., adown-click event). In some embodiments, the input on the input elementis or includes (804) an input on a touch-sensitive surface. In someembodiments, or in some circumstances, the increase in intensity of theinput is followed by a decrease in intensity of the input, for exampleas shown in FIG. 5BB. Method 800 includes, in response to detecting theinput sequence (806), in accordance with a determination that a secondinput event (e.g., an up-click event), including a decrease in intensityof the input after the first input event, is detected within a firsttime period after the first input event is detected, performing (808) afirst operation (e.g., a single click operation). For example, FIG. 5Xshown an input having an increase in intensity 532 followed by adecrease in intensity 534. If a second input event corresponding to thedecrease occurs within the first time period after the first input eventis detected, then a long press has not been detected and the firstoperation, such as a single click operation, is performed.

Method 800 further includes, in accordance with a determination that thesecond input event (e.g., an event that corresponds to a reversal of thefirst input event such as an up-click event) is not detected within asecond time period that is longer than the first time period and thatthe input had a characteristic intensity above a respective intensitythreshold between when the first input event was detected and when thesecond time period elapsed (e.g., as shown in FIG. 5BB, thecharacteristic intensity of the input was above the respective intensitythreshold (e.g., I_(D)) between when the first input event was detectedand when the second time period elapsed), performing (809) a secondoperation (e.g., a long press operation) once the second time period haselapsed (e.g., in response to the second time period elapsing (e.g.,sooner/faster than the normal long press operation), wherein the secondtime period is determined based at least in part on an intensity of theinput after the first input event is detected.

Method 800 further includes, in accordance with a determination that thesecond input event is not detected within a third time period (e.g., thedefault time period discussed above with reference to FIG. 5II) that islonger than the second time period and that the input did not have acharacteristic intensity above the respective intensity thresholdbetween when the first input event was detected and when the second timeperiod elapsed, performing (810) the second operation (e.g., the longpress operation) once the third time period has elapsed (e.g., inresponse to the third time period elapsing, corresponding to time T₅ inFIG. 5II; see above discussion of FIGS. 5A, 5B and 5II).

Optionally, method 800 includes, in accordance with a determination thatthe second input event is not detected within the second time period andthat the input did not have a characteristic intensity above therespective intensity threshold between when the first input event wasdetected and when the second time period elapsed (e.g., as shown in FIG.5II), forgoing (512) performance of the second operation (e.g., the longpress operation) once the second time period has elapsed until at leastthe third time period (e.g., called the default time period in the abovediscussion of FIG. 5II) has elapsed. Thus, in this circumstance, becausethe intensity of the input is not above the respective intensitythreshold, the long press operation is not accelerated.

In some embodiments, method 800 includes recognizing (814) the firstinput event in accordance with an increase in intensity of the inputthat satisfies a first intensity threshold and recognizing the secondinput event in accordance with an decrease in intensity of the inputthat satisfies a second intensity threshold that is distinct from thefirst intensity threshold. For example, FIG. 5X shown an input having anincrease in intensity 532 that satisfies a down-click intensitythreshold I_(D), followed by a decrease in intensity 534 that satisfiesan up-click intensity threshold I_(U) that is distinct from thedown-click intensity threshold I_(D). In some embodiments, therespective intensity threshold is greater (816) than the first intensitythreshold (e.g., referring to FIGS. 5Z and 5AA, the respective intensitythreshold is an intensity threshold such as I_(D+), which is greaterthan the down-click intensity threshold I_(D)), and the second intensitythreshold (e.g., up-click intensity threshold I_(U)) is less than thefirst intensity threshold (e.g., down-click intensity threshold I_(D)).

In some embodiments, method 800 includes monitoring (818) a duration ofa timeout period starting when the increase in intensity of the inputsatisfies the first intensity threshold, and comparing the duration ofthe timeout period with at least one of the first time period, secondtime period and third time period. See examples described above withrespect to FIGS. 5BB, 5DD and 5FF.

In some embodiments, method 800 includes stopping (820) the monitoringof the duration of the timeout period when the decrease in intensity ofthe input satisfies the second intensity threshold. For example,referring to FIG. 5X, if the intensity of the input falls below theup-click intensity threshold I_(U), the monitoring of the duration ofthe timeout period is stopped.

In some embodiments, method 800 includes accelerating (822) a rate atwhich the timeout period accumulates when intensity of the input exceedsa first predefined intensity threshold (e.g., the respective intensitythreshold), wherein the accelerated rate is higher than a default rate.As described above with reference to FIGS. 5BB, 5DD and 5FF, when theintensity of the input exceeds the first predefined intensity threshold,which in those examples is the down-click intensity threshold I_(D), therate of which the timeout period accumulates is an accelerated rate. Insome embodiments, method 800 further includes decelerating (824) a rateat which the timeout period accumulates when intensity of the inputdecreases.

In some embodiments, the third time period is (826) a maximum durationof the timeout period before performing the second operation (e.g., adefault timeout period, such as 500 ms). In some embodiments, monitoringthe duration of the timeout period continues until either adetermination that the second input event is detected, or duration ofthe timeout period is equal to the third time period, whichever occursfirst, and the second time period comprises a minimum duration of thetimeout period before performing the second operation.

In some embodiments, the second time period is constrained (828) to aleast a minimum duration (e.g., in some embodiments, the time to detecta long press input does not decrease below 300 ms, no matter how highthe intensity of the input reaches). In some embodiments, the minimumduration (e.g., 300 ms) is more than half of the maximum duration (e.g.,500 ms).

In some embodiments, monitoring the duration of the timeout periodincludes decaying (830) a time value, starting at an initial time value,at a rate that changes in accordance with the intensity of the input.For examples, see FIGS. 5BB, 5DD, 5FF and 5HH, and the discussion,above, of those figures.

In some embodiments, the first operation is or includes closing (832) anapplication, and the second operation comprises displaying a virtualassistant user interface.

In some embodiments, the first operation is or includes (834) scrollingfrom one screen of icons in an application launching user interface(e.g., an application launching user interface including a first set ofapplication launch icons), to another screen of icons in the applicationlaunch user interface (e.g., including a second set of applicationlaunch icons that include application launch icons not in the first setof application launch icons), as shown in the transition from FIG. 5Q to5R, and the second operation is or includes displaying a virtualassistant user interface (e.g., as shown in FIGS. 5BB, 5DD, 5FF and5HH).

In accordance with some embodiments, FIG. 11 shows a functional blockdiagram of an electronic device 1100 configured in accordance with theprinciples of the various described embodiments. The functional blocksof the device are, optionally, implemented by hardware, software, or acombination of hardware and software to carry out the principles of thevarious described embodiments. It is understood by persons of skill inthe art that the functional blocks described in FIG. 11 are, optionally,combined or separated into sub-blocks to implement the principles of thevarious described embodiments. Therefore, the description hereinoptionally supports any possible combination or separation or furtherdefinition of the functional blocks described herein.

As shown in FIG. 11, an electronic device 1100 includes a display unit1002 (e.g., corresponding to display 112) configured to display a userinterface, an intensity sensitive input unit 1104 (e.g., correspondingto home button 204) configured to detect intensity of user inputs withthe input element, and a processing unit 1110 coupled with the displayunit 1102 and the intensity sensitive input unit 1104. In someembodiments, electronic device 1000 also includes touch-sensitivesurface unit 1106 for receiving touch inputs on a surface, such as adisplay surface of display unit 1102, and one or more tactile outputunits 1108 for generating tactile outputs, also coupled to processingunit 1010. In some embodiments, processing unit 1110 includes one ormore of the following sub-units: intensity monitoring unit 1112, longpress determining unit 1114, single-click determining unit 1116, andfeedback unit 1118. In some embodiments, feedback unit 1118 includesresponse display unit 1120 and tactile output unit 1122.

Processing unit 1110 is configured to: detect (e.g., using intensitymonitoring unit 912) an input sequence that includes detecting anincrease in intensity of an input that corresponds to a first inputevent; and, in response to detecting the input sequence: in accordancewith a determination (e.g., using single click determining unit 1116)that a second input event, including a decrease in intensity of theinput after the first input event, is detected within a first timeperiod after the first input event is detected, perform a firstoperation; in accordance with a determination (e.g., using single clickdetermining unit 1116) that the second input event is not detectedwithin a second time period that is longer than the first time periodand (e.g., using long press determining unit 1114) that the input had acharacteristic intensity above a respective intensity threshold betweenwhen the first input event was detected and when the second time periodelapsed, perform a second operation once the second time period haselapsed, wherein the second time period is determined based at least inpart on an intensity of the input after the first input event isdetected; and in accordance with a determination that the second inputevent is not detected (e.g., using single click determining unit 1116)within a third time period that is longer than the second time periodand (e.g., using long press determining unit 1114) that the input didnot have a characteristic intensity above the respective intensitythreshold between when the first input event was detected and when thesecond time period elapsed, perform the second operation once the thirdtime period has elapsed.

In some embodiments, processing unit 1110 is further configured to, inaccordance with a determination (e.g., using single click determiningunit 1116) that the second input event is not detected within the secondtime period and (e.g., using single click determining unit 1116) thatthe input did not have a characteristic intensity above the respectiveintensity threshold between when the first input event was detected andwhen the second time period elapsed, forgo performance of the secondoperation once the second time period has elapsed until at least thethird time period has elapsed.

In some embodiments, the input on the intensity sensitive input unitcomprises an input on a touch-sensitive surface.

In some embodiments, processing unit 1110 is further configured torecognize the first input event in accordance with an increase inintensity of the input that satisfies a first intensity threshold andrecognize (e.g., using single click determining unit 1116) the secondinput event in accordance with an decrease in intensity of the inputthat satisfies a second intensity threshold that is distinct from thefirst intensity threshold.

In some embodiments, the respective intensity threshold is greater thanthe first intensity threshold, and the second intensity threshold isless than the first intensity threshold. See discussion of FIG. 5X withrespect to down-click intensity threshold I_(D) (corresponding to thefirst intensity threshold) and up-click intensity threshold I_(U)(corresponding to the first intensity threshold).

In some embodiments, processing unit 1110 is further configured tomonitor (e.g., using intensity monitoring unit 1112 and/or long pressdetermining unit 1114) a duration of a timeout period starting when theincrease in intensity of the input satisfies the first intensitythreshold, and comparing the duration of the timeout period with atleast one of the first time period, second time period and third timeperiod. In some embodiments, processing unit 1110 is further configuredto stop the monitoring of the duration of the timeout period when thedecrease in intensity of the input satisfies the second intensitythreshold. In some embodiments, processing unit 1110 is furtherconfigured to accelerate a rate at which the timeout period accumulateswhen intensity of the input exceeds a first predefined intensitythreshold, wherein the accelerated rate is higher than a default rate.In some embodiments, processing unit 1110 is further configured todecelerate a rate at which the timeout period accumulates when intensityof the input decreases.

In some embodiments, the third time period comprises a maximum durationof the timeout period before performing the second operation. In someembodiments, the second time period is constrained to a least a minimumduration.

In some embodiments, monitoring the duration of the timeout periodcomprises decaying a time value, starting at an initial time value, at arate that changes in accordance with the intensity of the input.

In some embodiments, the first operation is or includes closing anapplication, and the second operation comprises displaying a virtualassistant user interface. In some other embodiments, the first operationis or includes scrolling from one screen of icons in an applicationlaunching user interface (e.g., an application launching user interfaceincluding a first set of application launch icons, an example of whichis shown in FIG. 5Q), to another screen of icons in the applicationlaunch user interface (e.g., an application launching user interfaceincluding a second set of application launch icons that includeapplication launch icons not in the first set of application launchicons, an example of which is shown in FIG. 5R), and the secondoperation comprises displaying a virtual assistant user interface (e.g.,an example of which is shown in FIGS. 5BB, 5DD, and 5FF).

The operations in the information processing methods described abovewith reference to FIGS. 8A-8C are, optionally implemented by running oneor more functional modules in information processing apparatus such asgeneral purpose processors (e.g., as described above with respect toFIGS. 1A and 3) or application specific chips.

The operations described above with reference to FIGS. 8A-8C are,optionally, implemented by components depicted in FIGS. 1A-1B or FIG. 3.For example, detection operations 802, 808, etc., and recognize anddetermine operations 808, 810, 812, etc. are, optionally, implemented bycontact/motion module 130, and feedback operations that provide tactileoutputs are implemented by haptic feedback module 133, while some otheroperations are, optionally, implemented by event sorter 170, eventrecognizer 180, and event handler 190. Event monitor 171 in event sorter170 detects a contact on touch-sensitive display 112, and eventdispatcher module 174 delivers the event information to application136-1. A respective event recognizer 180 of application 136-1 comparesthe event information to respective event definitions 186, anddetermines whether a first contact at a first location on thetouch-sensitive surface (or whether rotation of the device) correspondsto a predefined event or sub-event, such as selection of an object on auser interface, or rotation of the device from one orientation toanother. When a respective predefined event or sub-event is detected,event recognizer 180 activates an event handler 190 associated with thedetection of the event or sub-event. Event handler 190 optionally usesor calls data updater 176 or object updater 177 to update theapplication internal state 192. In some embodiments, event handler 190accesses a respective GUI updater 178 to update what is displayed by theapplication. Similarly, it would be clear to a person having ordinaryskill in the art how other processes can be implemented based on thecomponents depicted in FIGS. 1A-1B.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific embodiments. However, theillustrative discussions above are not intended to be exhaustive or tolimit the invention to the precise forms disclosed. Many modificationsand variations are possible in view of the above teachings. Theembodiments were chosen and described in order to best explain theprinciples of the invention and its practical applications, to therebyenable others skilled in the art to best use the invention and variousdescribed embodiments with various modifications as are suited to theparticular use contemplated.

What is claimed is:
 1. A method comprising: at an electronic device witha display and an intensity sensitive input element for detectingintensity of user inputs with the input element; detecting a firstincrease in intensity of an input on the input element that meetsdown-click detection criteria; after detecting the first increase inintensity of the input on the input element, detecting a first decreasein intensity of the input; in response to detecting the first decreasein intensity of the input: determining whether the first decrease inintensity of the input meets up-click detection criteria, wherein: forthe first decrease in intensity, the up-click detection criteria requirethat the intensity of the input decrease below a first up-clickintensity threshold in order for the up-click detection criteria to bemet; the first up-click intensity threshold is time varying during thefirst decrease in intensity of the input in accordance with a low passfiltering of the detected intensity of the input during the firstdecrease in intensity of the input; and the first up-click intensitythreshold monotonically decreases during the first decrease in intensityof the input; in accordance with a determination that the first decreasein intensity of the input meets up-click detection criteria, providingfirst feedback indicating that the first decrease in intensity of theinput was recognized as an up-click; and in accordance with adetermination that the first decrease in intensity of the input does notmeet the up-click detection criteria, forgoing providing the firstfeedback.
 2. The method of claim 1, wherein, for the first increase inintensity, the down-click detection criteria require that the intensityof the input increase above a first down-click intensity threshold inorder for the down-click detection criteria to be met; and the methodincludes: after determining that the first decrease in intensity meetsthe up-click detection criteria, detecting a second increase inintensity of the input; and in response to detecting the second increasein intensity of the input: in accordance with a determination that thesecond increase in intensity of the input meets the down-click detectioncriteria, providing second feedback indicating that the second increasein intensity was recognized as part of a double-click input, wherein:for the second increase in intensity, the down-click detection criteriarequire that the intensity of the input increase above a seconddown-click intensity threshold in order for the down-click detectioncriteria to be met; and the second down-click intensity threshold istime varying, in accordance with the detected intensity of the inputduring the second increase in intensity of the input that is detectedafter the first decrease in intensity of the input; and in accordancewith a determination that the second increase in intensity of the inputdoes not meet the down-click detection criteria, forgoing providing thesecond feedback.
 3. The method of claim 2, wherein the second down-clickintensity threshold is time varying in accordance with a low passfiltering of the detected intensity of the input during the secondincrease in intensity of the input that is detected after the firstdecrease in intensity of the input.
 4. The method of claim 2, including,after detecting the second increase in intensity of the input on theinput element, detecting a second decrease in intensity of the input; inresponse to detecting the second decrease in intensity of the input: inaccordance with a determination that the second decrease in intensity ofthe input meets the up-click detection criteria, providing thirdfeedback indicating that the second decrease in intensity was recognizedas an up-click input, wherein: for the second decrease in intensity, theup-click detection criteria require that the intensity of the inputdecrease below a second up-click intensity threshold in order for theup-click detection criteria to be met; and the second up-click intensitythreshold is selected based on the intensity of the input during thesecond increase in intensity of the input; and in accordance with adetermination that the second decrease in intensity of the input doesnot meet the up-click detection criteria, forgoing providing the thirdfeedback.
 5. The method of claim 2, further comprising generating a samesecond tactile output in conjunction with multiple instances ofdetecting that the first decrease in intensity of an input detected onthe input element meets the up-click detection criteria, includinginstances in which the up-click detection criteria is associated withdifferent up-click intensity thresholds.
 6. The method of claim 1,wherein for the first increase in intensity, the down-click detectioncriteria require that the intensity of the input increase above a firstdown-click intensity threshold in order for the down-click detectioncriteria to be met.
 7. The method of claim 1, wherein the input on theinput element comprises an input on a touch-sensitive surface.
 8. Themethod of claim 1, wherein a ratio of the first up-click intensitythreshold to an intensity value that represents the intensity of theinput changes based on the intensity value that represents the intensityof the input such that: when the first up-click intensity threshold isbased on a first intensity value that represents the intensity of theinput, the ratio of the first up-click intensity threshold to the firstintensity value has a first value; and when the first up-click intensitythreshold is based on a second intensity value that represents theintensity of the input that is greater than the first intensity value,the ratio of the first up-click intensity threshold to the secondintensity value has a second value that is different from the firstvalue.
 9. The method of claim 8, wherein a magnitude of the firstup-click intensity threshold is set by multiplying the intensity valuethat represents the intensity of the input by an adjustment value thatis determined based at least in part on the magnitude of the intensityvalue that represents the intensity of the input.
 10. The method ofclaim 8, wherein the ratio of the first up-click intensity threshold toan intensity value that represents the intensity of the input changes inaccordance with a maximum characteristic intensity of the input.
 11. Themethod of claim 1, wherein a ratio of the first up-click intensitythreshold to an intensity value that represents the intensity of theinput varies smoothly from a predefined maximum value to a predefinedminimum value as the intensity value that represents the intensity ofthe input varies between a first intensity value and a second intensityvalue, wherein the first intensity value is less than the secondintensity value.
 12. The method of claim 1, wherein the first up-clickintensity threshold is no less than a predefined minimum up-clickintensity threshold.
 13. The method of claim 1, wherein the firstup-click intensity threshold is determined in accordance with amultiplier, having a value greater than zero and less than one, appliedto a characteristic intensity of the input.
 14. The method of claim 13,wherein the multiplier changes in accordance with the characteristicintensity of the input.
 15. The method of claim 14, wherein themultiplier smoothly varies from a predefined maximum value to apredefined minimum value as the characteristic intensity of the inputvaries between a first intensity value and a second intensity value,wherein the first intensity value is less than the second intensityvalue.
 16. The method of claim 1, wherein the first up-click intensitythreshold is the greater of a predefined minimum up-click intensitythreshold and a value determined in accordance with a multiplier, havinga value greater than zero and less than one, applied to a characteristicintensity of the input.
 17. The method of claim 1, further comprisinggenerating a first tactile output in conjunction with detecting that thefirst increase in intensity of the input meets the down-click detectioncriteria.
 18. The method of claim 1, further comprising generating asecond tactile output in conjunction with detecting that the firstdecrease in intensity of the input meets the up-click detectioncriteria.
 19. The method of claim 1, further comprising generating, inresponse to detecting the first increase in intensity of the input onthe input element that meets the down-click detection criteria, aresponse that is displayed on the display of the electronic device. 20.The method of claim 1, wherein providing the first feedback includesgenerating a response that is displayed on the display of the electronicdevice.
 21. The method of claim 1, further comprising generating a samefirst tactile output in conjunction with multiple instances of detectingthat the first increase in intensity of an input detected on the inputelement meets the down-click detection criteria, including instances inwhich the down-click detection criteria is associated with differentdown-click intensity thresholds.
 22. The method of claim 1, wherein thefirst up-click intensity threshold is time varying in accordance withapplying a fixed value multiplier to the low pass filtering of thedetected intensity of the input during the first decrease in intensityof the input.
 23. An electronic device, comprising: a display; anintensity sensitive input element for detecting intensity of user inputswith the input element; one or more processors; memory; and one or moreprograms, wherein the one or more programs are stored in the memory andconfigured to be executed by the one or more processors, the one or moreprograms including instructions for: detecting a first increase inintensity of an input on the input element that meets down-clickdetection criteria; after detecting the first increase in intensity ofthe input on the input element, detecting a first decrease in intensityof the input; in response to detecting the first decrease in intensityof the input: determining whether the first decrease in intensity of theinput meets up-click detection criteria, wherein: for the first decreasein intensity, the up-click detection criteria require that the intensityof the input decrease below a first up-click intensity threshold inorder for the up-click detection criteria to be met; the first up-clickintensity threshold is time varying during the first decrease inintensity of the input in accordance with a low pass filtering of thedetected intensity of the input during the first decrease in intensityof the input; and the first up-click intensity threshold monotonicallydecreases during the first decrease in intensity of the input; inaccordance with a determination that the first decrease in intensity ofthe input meets up-click detection criteria, providing first feedbackindicating that the first decrease in intensity of the input wasrecognized as an up-click; and in accordance with a determination thatthe first decrease in intensity of the input does not meet the up-clickdetection criteria, forgoing providing the first feedback.
 24. Theelectronic device of claim 23, wherein, for the first increase inintensity, the down-click detection criteria require that the intensityof the input increase above a first down-click intensity threshold inorder for the down-click detection criteria to be met; and the one ormore programs include instructions for: after determining that the firstdecrease in intensity meets the up-click detection criteria, detecting asecond increase in intensity of the input; and in response to detectingthe second increase in intensity of the input: in accordance with adetermination that the second increase in intensity of the input meetsthe down-click detection criteria, providing second feedback indicatingthat the second increase in intensity was recognized as part of adouble-click input, wherein: for the second increase in intensity, thedown-click detection criteria require that the intensity of the inputincrease above a second down-click intensity threshold in order for thedown-click detection criteria to be met; and the second down-clickintensity threshold is time varying, in accordance with the detectedintensity of the input during the second increase in intensity of theinput that is detected after the first decrease in intensity of theinput; and in accordance with a determination that the second increasein intensity of the input does not meet the down-click detectioncriteria, forgoing providing the second feedback.
 25. The electronicdevice of claim 24, wherein the second down-click intensity threshold istime varying in accordance with a low pass filtering of the detectedintensity of the input during the second increase in intensity of theinput that is detected after the first decrease in intensity of theinput.
 26. The electronic device of claim 24, wherein the one or moreprograms include instructions for: after detecting the second increasein intensity of the input on the input element, detecting a seconddecrease in intensity of the input; in response to detecting the seconddecrease in intensity of the input: in accordance with a determinationthat the second decrease in intensity of the input meets the up-clickdetection criteria, providing third feedback indicating that the seconddecrease in intensity was recognized as an up-click input, wherein: forthe second decrease in intensity, the up-click detection criteriarequire that the intensity of the input decrease below a second up-clickintensity threshold in order for the up-click detection criteria to bemet; and the second up-click intensity threshold is selected based onthe intensity of the input during the second increase in intensity ofthe input; and in accordance with a determination that the seconddecrease in intensity of the input does not meet the up-click detectioncriteria, forgoing providing the third feedback.
 27. The electronicdevice of claim 23, wherein a ratio of the first up-click intensitythreshold to an intensity value that represents the intensity of theinput changes based on the intensity value that represents the intensityof the input such that: when the first up-click intensity threshold isbased on a first intensity value that represents the intensity of theinput, the ratio of the first up-click intensity threshold to the firstintensity value has a first value; and when the first up-click intensitythreshold is based on a second intensity value that represents theintensity of the input that is greater than the first intensity value,the ratio of the first up-click intensity threshold to the secondintensity value has a second value that is different from the firstvalue.
 28. The electronic device of claim 27, wherein a magnitude of thefirst up-click intensity threshold is set by multiplying the intensityvalue that represents the intensity of the input by an adjustment valuethat is determined based at least in part on the magnitude of theintensity value that represents the intensity of the input.
 29. Theelectronic device of claim 27, wherein the ratio of the first up-clickintensity threshold to an intensity value that represents the intensityof the input changes in accordance with a maximum characteristicintensity of the input.
 30. The electronic device of claim 23, wherein aratio of the first up-click intensity threshold to an intensity valuethat represents the intensity of the input varies smoothly from apredefined maximum value to a predefined minimum value as the intensityvalue that represents the intensity of the input varies between a firstintensity value and a second intensity value, wherein the firstintensity value is less than the second intensity value.
 31. Theelectronic device of claim 23, wherein the first up-click intensitythreshold is determined in accordance with a multiplier, having a valuegreater than zero and less than one, applied to a characteristicintensity of the input.
 32. The electronic device of claim 31, whereinthe multiplier changes in accordance with the characteristic intensityof the input.
 33. The electronic device of claim 32, wherein themultiplier smoothly varies from a predefined maximum value to apredefined minimum value as the characteristic intensity of the inputvaries between a first intensity value and a second intensity value,wherein the first intensity value is less than the second intensityvalue.
 34. The electronic device of claim 23, wherein the first up-clickintensity threshold is the greater of a predefined minimum up-clickintensity threshold and a value determined in accordance with amultiplier, having a value greater than zero and less than one, appliedto a characteristic intensity of the input.
 35. The electronic device ofclaim 23, wherein the first up-click intensity threshold is time varyingin accordance with applying a fixed value multiplier to the low passfiltering of the detected intensity of the input during the firstdecrease in intensity of the input.
 36. A non-transitory computerreadable storage medium storing one or more programs, the one or moreprograms comprising instructions, which when executed by an electronicdevice with a display, and an intensity sensitive input element fordetecting intensity of user inputs with the input element, cause theelectronic device to: detect a first increase in intensity of an inputon the input element that meets down-click detection criteria; afterdetecting the first increase in intensity of the input on the inputelement, detect a first decrease in intensity of the input; in responseto detecting the first decrease in intensity of the input: determinewhether the first decrease in intensity of the input meets up-clickdetection criteria, wherein: for the first decrease in intensity, theup-click detection criteria require that the intensity of the inputdecrease below a first up-click intensity threshold in order for theup-click detection criteria to be met; the first up-click intensitythreshold is time varying during the first decrease in intensity of theinput in accordance with a low pass filtering of the detected intensityof the input during the first decrease in intensity of the input; andthe first up-click intensity threshold monotonically decreases duringthe first decrease in intensity of the input; in accordance with adetermination that the first decrease in intensity of the input meetsup-click detection criteria, provide first feedback indicating that thefirst decrease in intensity of the input was recognized as an up-click;and in accordance with a determination that the first decrease inintensity of the input does not meet the up-click detection criteria,forgo providing the first feedback.
 37. The non-transitory computerreadable storage medium of claim 36, wherein, for the first increase inintensity, the down-click detection criteria require that the intensityof the input increase above a first down-click intensity threshold inorder for the down-click detection criteria to be met; and the one ormore programs include instructions for: after determining that the firstdecrease in intensity meets the up-click detection criteria, detecting asecond increase in intensity of the input; and in response to detectingthe second increase in intensity of the input: in accordance with adetermination that the second increase in intensity of the input meetsthe down-click detection criteria, providing second feedback indicatingthat the second increase in intensity was recognized as part of adouble-click input, wherein: for the second increase in intensity, thedown-click detection criteria require that the intensity of the inputincrease above a second down-click intensity threshold in order for thedown-click detection criteria to be met; and the second down-clickintensity threshold is time varying, in accordance with the detectedintensity of the input during the second increase in intensity of theinput that is detected after the first decrease in intensity of theinput; and in accordance with a determination that the second increasein intensity of the input does not meet the down-click detectioncriteria, forgoing providing the second feedback.
 38. The non-transitorycomputer readable storage medium of claim 37, wherein the seconddown-click intensity threshold is time varying in accordance with a lowpass filtering of the detected intensity of the input during the secondincrease in intensity of the input that is detected after the firstdecrease in intensity of the input.
 39. The non-transitory computerreadable storage medium of claim 37, wherein the one or more programsinclude instructions for: after detecting the second increase inintensity of the input on the input element, detecting a second decreasein intensity of the input; in response to detecting the second decreasein intensity of the input: in accordance with a determination that thesecond decrease in intensity of the input meets the up-click detectioncriteria, providing third feedback indicating that the second decreasein intensity was recognized as an up-click input, wherein: for thesecond decrease in intensity, the up-click detection criteria requirethat the intensity of the input decrease below a second up-clickintensity threshold in order for the up-click detection criteria to bemet; and the second up-click intensity threshold is selected based onthe intensity of the input during the second increase in intensity ofthe input; and in accordance with a determination that the seconddecrease in intensity of the input does not meet the up-click detectioncriteria, forgoing providing the third feedback.
 40. The non-transitorycomputer readable storage medium of claim 36, wherein a ratio of thefirst up-click intensity threshold to an intensity value that representsthe intensity of the input changes based on the intensity value thatrepresents the intensity of the input such that: when the first up-clickintensity threshold is based on a first intensity value that representsthe intensity of the input, the ratio of the first up-click intensitythreshold to the first intensity value has a first value; and when thefirst up-click intensity threshold is based on a second intensity valuethat represents the intensity of the input that is greater than thefirst intensity value, the ratio of the first up-click intensitythreshold to the second intensity value has a second value that isdifferent from the first value.
 41. The non-transitory computer readablestorage medium of claim 40, wherein a magnitude of the first up-clickintensity threshold is set by multiplying the intensity value thatrepresents the intensity of the input by an adjustment value that isdetermined based at least in part on the magnitude of the intensityvalue that represents the intensity of the input.
 42. The non-transitorycomputer readable storage medium of claim 40, wherein the ratio of thefirst up-click intensity threshold to an intensity value that representsthe intensity of the input changes in accordance with a maximumcharacteristic intensity of the input.
 43. The non-transitory computerreadable storage medium of claim 36, wherein a ratio of the firstup-click intensity threshold to an intensity value that represents theintensity of the input varies smoothly from a predefined maximum valueto a predefined minimum value as the intensity value that represents theintensity of the input varies between a first intensity value and asecond intensity value, wherein the first intensity value is less thanthe second intensity value.
 44. The non-transitory computer readablestorage medium of claim 36, wherein the first up-click intensitythreshold is determined in accordance with a multiplier, having a valuegreater than zero and less than one, applied to a characteristicintensity of the input.
 45. The non-transitory computer readable storagemedium of claim 44, wherein the multiplier changes in accordance withthe characteristic intensity of the input.
 46. The non-transitorycomputer readable storage medium of claim 45, wherein the multipliersmoothly varies from a predefined maximum value to a predefined minimumvalue as the characteristic intensity of the input varies between afirst intensity value and a second intensity value, wherein the firstintensity value is less than the second intensity value.
 47. Thenon-transitory computer readable storage medium of claim 36, wherein thefirst up-click intensity threshold is the greater of a predefinedminimum up-click intensity threshold and a value determined inaccordance with a multiplier, having a value greater than zero and lessthan one, applied to a characteristic intensity of the input.
 48. Thenon-transitory computer readable storage medium of claim 36, wherein thefirst up-click intensity threshold is time varying in accordance withapplying a fixed value multiplier to the low pass filtering of thedetected intensity of the input during the first decrease in intensityof the input.